【发布时间】:2011-04-25 20:05:47
【问题描述】:
如果我得到一条足够长的线段可以穿过给定的多边形,它可以是凹多边形或凸多边形。我如何找到多边形中包含的所有相交的光段?
如果目标区域不是多边形,而是隐式曲线函数或样条曲线,怎么办?
谢谢!
【问题讨论】:
标签: algorithm graphics geometry numeric
如果我得到一条足够长的线段可以穿过给定的多边形,它可以是凹多边形或凸多边形。我如何找到多边形中包含的所有相交的光段?
如果目标区域不是多边形,而是隐式曲线函数或样条曲线,怎么办?
谢谢!
【问题讨论】:
标签: algorithm graphics geometry numeric
您的问题确实没有简单的解决方案,尤其是曲线(贝塞尔曲线和样条曲线)。除了多边形剪裁的复杂性之外,重构剪裁曲线也面临着相当大的挑战(假设您希望剪裁结果保持为贝塞尔曲线和样条曲线,而不仅仅是“扁平”线近似)。
我最近发布了我的多边形裁剪库“Clipper”的 beta 更新*,它确实可以进行线-多边形和线-线裁剪(其中线也可以是曲线)。然而,虽然主库是用 Delphi、C++ 和 C# 编写的,但新的 beta 代码到目前为止只在 Delphi 中,这可能对您没有帮助。不过,如果您查看代码,您就会明白为什么我说没有“简单”的解决方案。
【讨论】:
如果区域不是多边形,而是由某个隐式函数给出,则需要找到该函数等于红线的位置(方法当然取决于函数)。
【讨论】: