所以我正在一個三維場景,我需要隨意轉換和從極座標轉換,並寫了一個函數來幫助我轉換。問題在於它會經常導致其中一個角度出現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