所以我正在一个三维场景,我需要随意转换和从极坐标转换,并写了一个函数来帮助我转换。问题在于它会经常导致其中一个角度出现NaN。我使用的功能如下:笛卡尔到极坐标导致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
}
披是什么是返回NaN,并且虽然我虽然我想通了,它导致NaN的它好像它是在某些点发生的所有整个场景中
你可以看到这里的问题: http://cabbibo.com/sketches/audioSketch3/
凡在左上角看到相机的极性和笛卡尔坐标,极坐标的最后一节(PHI)将显示为NaN的时。
我认为它与我的数学有些类似的问题,因为我不擅长它,但它似乎可能是一个不同的问题,比如我不理解如何使用Math.asin ...
感谢您的时间,并让我知道是否有任何其他人需要的信息!
艾萨克
x可以为零吗?那将导致在该行上除以零 – mindandmedia
asin仅从-1到1定义;它返回NaN,只要y> x或y <-x – Stuart