java – 计算弧和线之间的交叉点

我想计算弧和线之间的交点.我有线和弧的所有数据.

对于行:起点和终点.
对于弧:起点/终点,起点/终点角,半径和中心点.

我附上了一张图片.在下面的图像中,我绘制了一条弧和线,其中线与弧相交.

所以现在我想找到交叉点.请给我一些算法或想法或任何可用的代码.

解决方法:

弧上的一个点有坐标

R.cos(t) + Xc
R.sin(t) + Yc

使用线性方程的隐式形式(给定或从两个给定点获得),

A.X + B.Y + C = 0

然后

A.R.cos(t) + B.R.sin(t) + A.Xc + B.Yc + C = 0

要解决这个三角方程,首先将两个成员除以R.√A²B²,给出

c.cos(t) + s.sin(t) = d

可以重写,tan(p)= s / c和d = cos(q):

cos(t-p) = cos(q)

然后

t = p +/- q = arctan(B/A) +/- arccos(-(A.Xc + B.Yc + C)/R.√A²+B²)

最后,您需要检查t的这些值是否落在范围(开始,结束),模2π.

上一篇:javascript-为什么我的精灵/实体不会直线移动?


下一篇:最佳算法生成算法的STL(3-D几何文件)吗?