检查点x是否在球体内

时间:2015-11-24 12:48:41

标签: javascript math 3d

这是检查点是否在球体内的正确公式:

var x = e.clientX, y = e.clientY, z = 120;
var r = 100, x2 = 100, y2 = 100, z2 = 100;

var dx = x - x2;
var dy = y - y2;
var dz = z - z2;
dist = Math.sqrt(dx * dx + dy * dy + dz * dz);
console.log(dx, dy, dz, dist);


if (dist < r) {
    console.log("oi");
}

我使用了一个在鼠标点击时调用的函数。在我的文档上有一个图像,我用它来检查我是否在其中单击。图像位置是x2y2y2坐标。

点击的位置为mouseXmouseY以及固定的深度,因为我在点击2d对象时无法测试深度。

1 个答案:

答案 0 :(得分:0)

考虑 X2 =(x2,y2,z2)是球体的中心, X =(x,y,z)是你感兴趣的点然后是的你有一个好的公式来检查你的点在球体内是否严格 dist(X,X2)&lt; [R

请注意,如果您希望能够点击球体表面,则测试会变为if (dist <= r)