rect, polar, degrees, radians...まとめて覚えよ!!!

Pythonモジュールの話です。


cmath.rect

公式ドキュメントの記載

cmath.rect(r, phi)¶ 極座標 r, phi を持つ複素数 x を返します。値は r * (math.cos(phi) + math.sin(phi)*1j) に等しいです。

(例)

>>> cmath.rect(2**.5, math.pi/4) # phiを孤度法で指定
(1.0000000000000002+1j)

>>> cmath.rect(2**.5, math.radians(45)) #phiを度数法の45°から孤度法のラジアンに変換して指定
(1.0000000000000002+1j)

[注意] phiは、ラジアンで指定する必要があるので注意。 つまり、60°みたいな度数法じゃくて、π/4みたいな孤度法や。 後述のmath.radiansとの合わせ技で使うシーンがあるかも。

cmath.polar

[公式ドキュメント]https://docs.python.org/ja/3/library/cmath.html?highlight=polar#cmath.polar)の記載

cmath.polar(x)¶

x の極座標表現を返します。x の半径 r と x の位相 phi の組 (r, phi) を返します。polar(x) は (abs(x), phase(x)) に等しいです。

(例)

>>> cmath.polar(1+1j)
(1.4142135623730951, 0.7853981633974483)

直交座標から、距離と角度をパッと出すのに便利かも。

math.degrees

公式ドキュメントの記載

math.degrees(x)¶ 角 x をラジアンから度に変換します。

(例)

>>> math.degrees(math.pi)
180.0

ま、これはそのままだよね。
ラジアン-->度? 度-->ラジアン?どっちだっけ、あ〜〜〜〜!となりそうなので
モジュール名のdegreesは、変換後単位と覚えるとよろし。
Google先生に聞いたり、簡単に試すとすぐわかるけどね。

math.redians

公式ドキュメントの記載

math.radians(x)¶ ラジアンから度に変換します。

(例)

>>> math.radians(180)
3.141592653589793 # 180°はπなので、3.14XXXとなる。


問題

これらモジュールをマスターすると下記問題が簡単に解けるようになるのである。

f:id:atti_itta:20201222234836p:plain

Input: func(OA, AB, BC, alpha, beta, gamma)
Output: OCの長さ、OCの角度(OC辺<-->X軸マイナス方向)