none
VB6 角度象限判斷 RRS feed

  • 問題

  • 我現在做一個

    x y z 座標轉換成rho phi z座標的程式

    現在會用到旋轉角度的按鈕

    想請問要用甚麼指令判斷旋轉後的角度在第幾象限

    若超過360度的話要用甚麼指令

    用IF試過了 但還是不行 超過第二象限都會亂跳

    2014年1月20日 下午 05:39

解答

  • 為什麼 180 度... 你把數學上的 Atn 輸出值域看過嗎?線上手冊看過嗎?


    <sup></sup>Atn 函數

    傳回一個型態為 Double
    的值,其內容為引數的「反正切」(arctangent)函數值。

    語法

    Atn(number)

    必要引數 number 可以是一個型態為 Double的數值,或任何數值運算式

    請注意

    Atn 函數的引數 (number) 是直角三角形中構成直角兩邊的比值
    (正切函數值),其傳回值則為相對應之底角的度數,以「弧度」為單位。正切函數值 (number)
    的算法為「對邊除以鄰邊」。

    傳回值的範圍落在 pi/2 到 pi/2 的「弧度」之間。

    「角度」與「弧度」的轉換方法為:將「角度」乘以 pi/180 即為「弧度」。反過來將「弧度」乘以 180/pi 便得「角度」。

    附註   Atn(反正切函數) 是 Tan(正切函數)
    的反三角函數,正切函數的引數值為角度,傳回值為該角度之對邊除以鄰邊的比值。請不要將 Atn 和 cotangent(餘切函數)
    搞混了,餘切函數值是正切函數值的倒數,cotangent =(1/tangent)。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2014年1月22日 下午 01:55

所有回覆

  • 有現成的公式可用, 請參考:Spherical Coordinates
    2014年1月21日 下午 12:16
  • 程式語言都用徑度為單位,用角度要先換算。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2014年1月21日 下午 01:15
  • 不好意思,問的太急,小的現在補上目前程式碼

    2014年1月21日 下午 04:20
  • Public Sub xyzxy1z1(x, y, z)
    If y = 0 Then y = 0.000000000000001
    Dim r, theta1, theta2, dthetax, thetap As Double
    dthetax = Text13.Text
    r = (y * y + z * z) ^ 0.5
    theta1 = Atn(z / y) * 180 / 3.14159265358979
    theta2 = theta1 + dthetax
    If theta1 < 0 Then
    theta1 = 180 + theta1
    theta2 = theta1 + dthetax
    y1 = -y1
    z1 = -z1
    End If
    If theta1 > 180 Then
    theta1 = theta1 + 180
    theta2 = theta1 + dthetax + 180
    End If
    y1 = r * Cos(theta2 * 3.14159265358979 / 180)
    z1 = r * Sin(theta2 * 3.14159265358979 / 180)

    End Sub

    這是目前旋轉角度的程式碼

    但是不知道為何我轉超過180度就會自動減掉180度....

    2014年1月21日 下午 04:21
  • 謝謝你 我就是在做這種類型的程式!
    2014年1月21日 下午 04:21
  • 為什麼 180 度... 你把數學上的 Atn 輸出值域看過嗎?線上手冊看過嗎?


    <sup></sup>Atn 函數

    傳回一個型態為 Double
    的值,其內容為引數的「反正切」(arctangent)函數值。

    語法

    Atn(number)

    必要引數 number 可以是一個型態為 Double的數值,或任何數值運算式

    請注意

    Atn 函數的引數 (number) 是直角三角形中構成直角兩邊的比值
    (正切函數值),其傳回值則為相對應之底角的度數,以「弧度」為單位。正切函數值 (number)
    的算法為「對邊除以鄰邊」。

    傳回值的範圍落在 pi/2 到 pi/2 的「弧度」之間。

    「角度」與「弧度」的轉換方法為:將「角度」乘以 pi/180 即為「弧度」。反過來將「弧度」乘以 180/pi 便得「角度」。

    附註   Atn(反正切函數) 是 Tan(正切函數)
    的反三角函數,正切函數的引數值為角度,傳回值為該角度之對邊除以鄰邊的比值。請不要將 Atn 和 cotangent(餘切函數)
    搞混了,餘切函數值是正切函數值的倒數,cotangent =(1/tangent)。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2014年1月22日 下午 01:55