[問題] 關於方位角與勒讓得多項式

作者: u5484 (ROCK N ROLL)   2013-02-02 21:53:38
大家好 小弟想請問一個簡單的數學問題
由於目前需要使用空間中的球座標系座標來計算仰角
例:一個點在空間中的座標 (x,y,z)
而仰角計算公式為: Arccos(z平方/根號(x平方+y平方+z平方)
小弟只用此公式計算出"仰"角之後 再帶入勒讓得多項式
可是問題來了
由於勒讓得多項式所限定需要帶入的Cosin theta值必須介於-1~1之間
而小弟算出來的數值有超過1.5~2.多的
請問需要做轉換之類的嗎還是?
否則這樣子無法做計算
請神人幫解答
感謝!!!
作者: tkcn (say)   2013-02-02 22:09:00
不熟,但我猜 -1~1 的單位是 PI?
作者: u5484 (ROCK N ROLL)   2013-02-02 22:13:00
應該不是喔 他就是介於-1~1之間的弧度值吧!
作者: DJWS (...)   2013-02-03 12:53:00
C和matlab 呼叫 acos 得到的數值是 [0, 3.14..] 的弧度值喔!所以 theta 介於 [0, 3.14...] cos(theta) 介於 [-1, 1]應該是沒有問題才對
作者: u5484 (ROCK N ROLL)   2013-02-03 12:59:00
可是我利用空間中座標再搭配arccos所得到的數值有超過...所以是不是代表我還要將它做旋轉角度的動作呢??不好意思 小弟筆誤 是計算其仰角才對
作者: DJWS (...)   2013-02-03 13:05:00
也有可能是程式碼寫錯 你可以把計算仰角的程式碼貼出來~還有那個仰角的公式 分子是z而不是z平方http://zh.wikipedia.org/wiki/球坐標系
作者: u5484 (ROCK N ROLL)   2013-02-03 13:07:00
小弟的仰角計算公式: acos(z/sqrt(x*x+y*y+z*z))感謝提醒 小弟已修正z平方然後再利用此公式得到的弧度值帶入Legendre計算中但MATLAB中明顯指出範圍須介於-1~1之間 所以很困惑
作者: DJWS (...)   2013-02-03 13:10:00
請問你用哪一種程式語言? 我第一次見到arc這個函數...
作者: u5484 (ROCK N ROLL)   2013-02-03 13:13:00
!!不好意思一直打錯= = 我是用C 是acos才對 Sorry!!
作者: DJWS (...)   2013-02-03 13:18:00
照這樣看應該是程式碼方面的問題 你得找人幫你檢查程式碼
作者: u5484 (ROCK N ROLL)   2013-02-03 13:20:00
程式碼方面我都跟MATLAB所產生的結果對照過了 計算出的結果是一樣的 只是這邊可能需要做一些角度轉換什麼的...很困擾也許我的反餘弦函數得到的值還需要做扣掉pi/2?
作者: vaakaa (我要歐趴)   2013-02-03 16:29:00
建議你可以另外寫條件"標記"出有問題的點確認看看帶入點和結果合不合理

Links booklink

Contact Us: admin [ a t ] ucptt.com