给定XYZ空间中的两个点(P1和P2),创建一个给定半径的管。为了做到这一点,我需要计算两个点周围的圆的点数,使得圆与P1→P2垂直(并且彼此平行)。一个圆的dx/dy/dz可用于制作其他圆。代码的形式如下所示:如何计算垂直于矢量的圆?
function circle(radius, segments, P1, P2) {
// 3D circle around the origin, perpendicular to P1P2
var circle = [];
var Q = [P2[0] - P1[0], P2[1] - P1[1], P2[2] - P1[2]];
for (var i = 0; i < segments; i++) {
var theta = 2*Math.PI*segment/i;
var dx = mysteryFunctionX(Q, theta, radius);
var dy = mysteryFunctionY(Q, theta, radius);
var dz = mysteryFunctionZ(Q, theta, radius);
circle.push([dx, dy, dz]);
}
return circle;
}
每个神秘功能需要什么计算?
明确地说,'[0]','[1]'和[2]是'x','y', z',分别? –
@NicHartley是的 – dmuir