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

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

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

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

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

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


    20次平滑

    100次平滑

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

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

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

    下面是加入端点约束

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

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





  • 相关阅读:
    MySQL (下篇)
    【JUC剖析】专栏总集篇
    CF1391D(思维)
    CF1393E2(字符串)
    洛谷P5405 [CTS2019]氪金手游(期望,容斥)
    P5293 [HNOI2019]白兔之舞(单位根反演)
    洛谷P5400 [CTS2019]随机立方体(计数)
    洛谷P5401 [CTS2019]珍珠(生成函数)
    支配树学习笔记
    UOJ455 雪灾与外卖(模拟费用流)
  • 原文地址:https://www.cnblogs.com/dydx/p/4523053.html
Copyright © 2011-2022 走看看