6

有没有一种方法来几何计算线和任意图形路径的交点?我知道所有的线条和曲线在路径中的位置,如果有帮助,我使用HTML5 canvas元素。基本上,我可以访问所有的画布绘图命令及其参数。例如,如果使用lineTo调用API,则使用moveTo,然后使用弧来获取所有这些信息。每个对API的调用都存储在一个数组中。我有路径定义,我只想找出线条与路径相交的地方。以下图片显示了我需要查找的几个要点示例。如何计算直线和任意形状的交点?

alt text http://cl.ly/3228b0e7ea32b172e960/content

感谢您的帮助!再次,如果可能的话,我宁愿做几何而不是像素。

回答

0

不知道如何定义图形路径,不可能用具体的算法来回答你的问题。对于直线段,有一个解决方案this book on algorithms

+0

基本上,我可以访问所有的画布绘图命令及其参数。例如,如果使用lineTo调用API,则使用moveTo,然后使用弧来获取所有这些信息。每个对API的调用都存储在一个数组中。我有路径定义,我只想找出线条与路径相交的地方。 – devongovett 2010-06-19 23:31:29

+0

@devongovett:我的建议是将这些信息添加到问题中。 – 2010-06-20 00:41:19

+0

所以你的问题是找到由javascript画布绘制命令和一条直线定义的线之间的交集。 – 2010-06-20 00:56:06

0

如果你有一切方程式,那么你可以做(​​理论上)。实际上,这并不容易(特别是在一般情况下)。 This discussion对相交线和贝塞尔曲线有一些很好的建议。

0

你想交叉一条直线和一个“样条”x(t),y(t),对于x(t)和y(t),它应该至多是4次多项式。你编写了求解方程,但是你需要知道所有的参数。如果解决方案超出范围(线段和样条线段有开始和结束) - 丢弃它。相关问:

The intersection point between a spline and a line