看板 java 關於我們 聯絡資訊
※ 引述《linked (13時)》之銘言: : 請問各位大大, : 我寫了一個程式如下, : 將直角座標轉成球體座標, : 再將球體座標轉回直角座標,和原來的直角座標相比, : 正負號都變了,~.~ : 請各位大大幫我看看哪邊有錯誤,謝謝~ : fi = Math.atan(y/x); http://zh.wikipedia.org/wiki/%E7%90%83%E5%BA%A7%E6%A8%99%E7%B3%BB "特別注意,必須依照 y/x 正確的象限來定義反正切值" tan(θ)=y/x,從y/x求θ角: 若(x,y)在第1象限,則0<θ<π/2 (x,y)在第2象限,則π/2<θ≦π (x,y)在第3象限,則-π<θ<-π/2 (x,y)在第4象限,則-π/2<θ< 0 public static void main(String[] args) { double x = -70, y =0.7, z = -16; double r = Math.sqrt(x*x+y*y+z*z); double fi = Math.acos(z/r); double theta = Math.atan2(y,x); double xx = r*Math.sin(fi)*Math.cos(theta); double yy = r*Math.sin(fi)*Math.sin(theta); double zz = r*Math.cos(fi); System.out.println("x="+xx+",y="+yy+",z="+zz); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.96.209
linked:謝謝你,我了解了^^ 02/12 13:23