首页 文章

确定所有段和圆弧组合之间的交点

提问于
浏览
1

给定线段 x1y1x2y2 和圆弧(用 x1y1x2y2Ij 定义;其中 I 是从 x1 到圆心的X方向距离, j 是距离从 y1 到圆心的Y方向; (x1,y1) = (x2,y2) 的圆是圆 . ),如何找到这些几何的集合之间所有交点的坐标?

注意:弧也可以 x1y1x2y2R 给出, R 是半径,但是我已经有了将一个转换为另一个的机制 .

这是一个Java项目,我没有找到任何库或算法来确定这一点 .

确定两个线段之间的交叉点很简单,但其他情况要复杂得多 .

1 回答

  • 0

    你的问题归结为找到(1)直线,(2)直线弧,(3)弧弧之间的交点

    (1)你可以在互联网上找到很多解决方案 . 这是一个:How do you detect where two line segments intersect?

    (2)假设你有一条线和圆圈(而不仅仅是线段和圆弧) . 如果直线和圆相交,则可以这样计算点:http://mathworld.wolfram.com/Circle-LineIntersection.html

    如果存在这一个或两个点,则必须检查它们实际上是否包含在线段和弧中 . 如果是这样,你有分数!

    (3)在这里你再次假设你有两个圆圈并以这种方式找到点:http://mathworld.wolfram.com/Circle-CircleIntersection.html

    最后再次检查点是否属于两个弧 .

    如果您有这三种方法,您可以尝试贪婪的方式并尝试所有N ^ 2线段和弧的组合

相关问题