ほとんどの AutoLISP 関数によって返される角度値と図面に保存されている角度値は、ラジアン単位で表されます。一方、角度の入力は、通常は度またはラジアン以外の角度形式で指定されます。
角度値の変換は、数学関数の組み合わせを使用して直接行う、または angtof と angtof の関数を使用して行うことができます。angtos 関数は、ラジアンで表された角度値を度またはサポートされている角度形式のいずれかに変換します。この関数は文字列値を返します。実数(または浮動小数点数)の値が必要な場合は、atof 関数を使用して、angtos 関数によって返された文字列値を変換することができます。
(setq half-PI (/ PI 2)) 1.5708 (setq angstr (angtos half-PI 0 2)) "90.00" (setq deg (atof angstr)) 90.0
angtof 関数は angtos 関数の逆で、角度値を表す文字列をラジアン単位の実数(または浮動小数点数)の値に変換します。
(setq angstr (angtos 1.5708 1 6)) "90d0'0.76\"" (setq rad (angtof angstr 1)) 1.5708
数学関数を使用すると、angtos 関数と angtof 関数を使用するよりも効率的にラジアンを度に、あるいは度をラジアンに変換することができます。
ラジアンを度に変換する計算式は、次のとおりです。
(Radians / PI) * 180 = Degrees
AutoLISP では、次の関数で同じことを実行することができます。
; Convert value in radians to degrees (defun Radian->Degrees (nbrOfRadians) (* 180.0 (/ nbrOfRadians pi)) ) RADIAN->DEGREES (Radian->Degrees PI) 180.0
度をラジアンに変換する計算式は、次のとおりです。
(Degrees / 180) * PI = Degrees
AutoLISP では、次の関数で同じことを実行することができます。
; Convert value in degrees to radians (defun Degrees->Radians (numberOfDegrees) (* pi (/ numberOfDegrees 180.0)) ) DEGREES->RADIANS (Degrees->Radians 180.0) 3.14159