zoukankan      html  css  js  c++  java
  • 改进边的导航

    现时的做法是对寻路结果进行平滑,每个结构不知道其他寻路结果的存在,因此无法在结果曲线的平滑度和结果曲线的重合度上取得平滑。要么结果曲线很平滑,但曲线十分分散;要么结果曲线重合度高,但曲线本身不平滑。

    改进的方法有两种。
    一种是在所有路线完成导引后,统一对其经过的边上的控制点进行平滑。
    这种方法比较简单,而且在路线较少时计算量较低。
    缺点是一次要处理一批路线,不同批处理的路线得到的结果不同。可以用一个开关解决这种情况。例如第一次处理路线时打开开关,路线会修改控制点的位置,随后的处理关闭开关,也就不修改控制点。

    另一种是事先按照某个规则,对边上的控制点进行平滑。边导引的过程仅仅是跟随已有的平滑过后的控制点。

    第一种方法比较简单,效果也比较有保证,因此先采用第一种方法。

    以下是实现结果。
    在边原来绑定点权重为0.2的情况下,
    无平滑


    20次平滑

    100次平滑

    可见20 次平滑后效果与100次差不多了。

    20次平滑,但绑定点权重改为0.02

    可见环绕中间类的路线比较平滑,但部分地方两个方向的路线开始重合,说明约束点的作用不够大。

    下面是加入端点约束

    加入端点约束之后,靠近边界的地方有所好转,但其余地方差不多。

    由半边改为边,然后加入样条曲线之后,效果有所改善。





  • 相关阅读:
    易错点集合
    [NOIP2014][题解]飞扬的小鸟
    [题解]P2014 选课-树型依赖的背包
    [题解]「一本通 1.3 练习 1」埃及分数
    【NOIP2015】斗地主 题解
    NOIP2015子串题解
    单人纸牌_NOI导刊2011提高(04) [题解]
    「一本通 1.3 例 5」weight 题解(玄学搜索对象)
    NOIP2017 跳房子题解
    P1850 换教室 题解
  • 原文地址:https://www.cnblogs.com/dydx/p/4523053.html
Copyright © 2011-2022 走看看