所以我正在处理一个 3-D 场景,我需要随意转换到极坐标和从极坐标转换,并编写了一个函数来帮助我转换。问题是它经常导致其中一个角度的 NaN。我正在使用的功能如下:
toPolar: function(x,y,z){
var sqrd = (x*x)+(y*y)+(z*z)
var radius = Math.pow(sqrd,.5)
var theta = Math.acos(z/radius)
var phi = Math.asin(y/x)
var toReturn={
r:radius,
t:theta,
p:phi
}
return toReturn
}
Phi 是返回 NaN 的原因,虽然我知道它在哪里导致 NaN,但它似乎在整个场景中的某些点上发生
你可以在这里看到问题:http: //cabbibo.com/sketches/audioSketch3/
在左上角,您可以看到相机的极坐标和笛卡尔坐标,极坐标 (phi) 的最后一部分会不时显示为 NaN。
我认为我的数学存在某种问题,因为我不擅长它,但似乎这可能是一个不同的问题,例如我不了解如何使用 Math.asin ...
感谢您的宝贵时间,如果有人需要任何其他信息,请告诉我!
艾萨克