假设我有一个圆柱体,该圆柱体的半径为Z,半径为R,半径为一半,Z轴为中心,一条(无限)直线由两个3D点A和B定义。最佳的计算方法是最接近此线的圆柱面,特别是在c ++中?
考虑3D的斜线-z轴和您的线。
在它们之间建立最短的线(垂直于两条线)。
[此计算的数学方法在“最短线”部分here中进行了描述,实现的示例是here。
如果z轴上的点S(最短的线与z轴相交)在圆柱体的外部,则最接近的点位于圆柱体顶部或底部的圆周上(使用下面介绍的方向矢量,z分量为零)] >
否则,计算最短线方向的单位向量,将其乘以圆柱体半径,然后加到点S
还检查距离的情况
explaination figure