![]() |
1
1
你可以用
|
![]() |
2
1
算法
进一步改进
此解决方案基于以下问题:检测命中是
还不够
,因为检测到碰撞时可能太晚了,实际碰撞可能发生在上一个点和当前点之间的任何位置(在
这种试错法可以通过在正确计算的基础上开始非常精确的“猜测”来改进 在发现第一次撞击后 .
我们可以计算
如果计算正确,那么只有2个循环就足以检测碰撞点:第一个循环用于检测碰撞(如所示)
|
![]() |
3
0
nearest point 在从移动点的位置开始的路径上。
如果点与最近点之间的距离低于阈值(等于
不过有个陷阱
:的
举个例子:
以及 Sketch .
也就是说,最好的方法就是等待(或实现自己),
Path dilation/offsetting
理想情况下,扩张/抵消将用相同的方法完成
有一个 JS library that reliably does polygon offsetting 可能对你有用。 |
|
Entaro · 纸张js从一条路径绘制多条并行路径 9 年前 |
![]() |
JDaniel · 在PaperJS中添加其他对象属性以导出它们 9 年前 |
![]() |
Kris RaduhaSt · 如何使用PaperJs在光栅生成的画布内绘制圆 10 年前 |