給定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