我在 3D 中有一条无限长的直线,假设它的终点为 A 和 B(A 和 B 之间的长距离),还有一条轴对齐的弧,假设它的中心为 C,起点为 S,终点为作为E。我们如何计算它们之间的距离?
或者圆弧可能是螺旋线?
这是我的问题的图片。
如图所示,圆弧或螺旋在xy平面上。
线条方向由xyz 轴表示。
红点代表垂直于屏幕的线。
左中图为圆弧状态,右图为螺旋状态。
最佳答案
如果你的弧是椭圆弧那么它就很简单了:
创建将椭圆弧转换为圆弧的转换。这是通过旋转和缩放变换矩阵的组合来完成的。 rotation 必须旋转您的圆弧,使其 a、b 轴与 x、y 轴对齐(旋转角度值通常是直接已知的,或者您可以使用 a、b 轴之一的 arctan 计算它)。然后将比例应用于 x 或 y 坐标,以便在缩放两个轴 a、b 后将具有相同的长度。
计算圆和点之间的最小距离(它位于圆心和您的兴趣点以及圆轮廓的直线上)我就是这样。你可以自己计算公式或谷歌它或者如果你仍然有问题写在这里我会计算它。
关于c++ - 任何计算无限线和轴对齐弧之间距离的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17226601/