首页 > 解决方案 > 在 3D 空间中沿圆的圆周移动一个点

问题描述

我试图在圆上找到一个最终位于球体中的点。这里已知的参数是C(x,y,z),半径R和点P(a,b,c)。现在我想找到一个点 Q(d,e,f),它与点 P 相距特定距离D(例如 15 毫米)。但它应该正好位于圆的圆周上。当涉及到位于 2D 空间中的圆时,我可以理解这种情况,我可以使用圆的参数方程并且可以找到圆周上的点。但我在这里面临的挑战是圆圈位于 3D 空间中。

在此处输入图像描述

所以我无法解决这个案子。

球体参数方程:

x=Rsin(φ)cos(θ);y=Rsin(φ)cos(θ);z=Rcos(φ);

已知参数:中心 C(x,y,z) ,点 P(a,b,c),半径 R,距离 D

**示例代码:**

double radianConversion = PI / 180.0;  // **i = θ (0 - 360°) & j = Φ (0 - 180°)** & intermedPoint-P(a,b,c)
for(double i = 0 ; i <= 360; i++;) {
    for(double j = 0;  j <= 180; j++) {
        double x = (intermedPoint.x() + d*sin(j*radianConversion)*cos(i*radianConversion));
        double y = (intermedPoint.y() + d*sin(j*radianConversion)*cos(i*radianConversion));
        double z = (intermedPoint.z() + d*cos(j*radianConversion));
        qDebug() <<x<<";"<<y <<";" <<z ;
    }
}

标签: 3dgeometry

解决方案


推荐阅读