平面(2D)

一覧

三角形 点で囲まれた多角形 内接円 外接円 正多角形の内接円 正多角形の外接円
直角三角形 点で囲まれた多角形 三角形の内接円 三角形の外接円 正多角形の内接円 正多角形の外接円
2点間の距離 2直線の交点と角度 原点を中心に回転 直交座標から極座標 極座標から直交座標 3点を通る円の中心
2点間の距離と角度 2直線の交点と角度 原点を中心に回転 直交座標から極座標 極座標から直交座標 3点を通る円の中心

直角三角形 RightTriangle

RightTriangle
辺ab、高さ、辺ca、aの角度のうち2つを入力して実行すると入力していない項目を算出して出力します
【 例 】
入力
ab 3.0
h 4.0
ca
angle
出力
out_ab 3.0
out_h 4.0
out_ca 5.0
out_angle 53.13

【 計算式 】
\begin{align} \theta =& angle*\frac{\pi}{180} \\ h =& ab \cdot tan\theta &= ca \cdot sin\theta \\ ab =& ca \cdot cos\theta \end{align}


点で囲まれた多角形 PolygonArea

PolygonArea
座標上の10点までの点を繋げた多角形の面積と外周を出力します
【 例 】
入力
poits [0.0,0.0] [2.0,0.0] [3.0,2.0] [1.5,2.5] [-1.0,2.0]
n 5
出力
area 7.0
perimeter 10.60

【 計算式 】
\[ area = \frac{1}{2} \left|\sum_{j=1}^{n} (x_{j}-x_{j+1})*(y_{j}+y_{j+1})\right| \] \[ primeter = \sum_{j=1}^{n} \sqrt{(x_{j}-x_{j+1})^{2}+(y_{j}-y_{j+1})^{2}}\ \]


三角形の内接円 TriangleIncircle

TriangleIncircle
3辺の長さを指定した三角形の内接円の半径と円の面積を出力します
【 例 】
入力
ab 3.0
bc 4.0
ca 5.0
出力
r 1.0
area 3.14

【 計算式 】
\[ s = \frac{ab+bc+ca}{2} \] \[ r = \frac{\sqrt{s(s-ab)(s-bc)(s-ca)}}{s} \] \[ area = \pi r^{2} \]


三角形の外接円 TriangleCircumcircle

TriangleCircumcircle
3辺の長さを指定した三角形の外接円の半径と円の面積を出力します
【 例 】
入力
ab 3.0
bc 4.0
ca 5.0
出力
r 2.5
area 19.64

【 計算式 】
\[ s = \frac{ab+bc+ca}{2} \] \[ r = \frac{ab\cdot bc\cdot ca}{4\sqrt{s(s-ab)(s-bc)(s-ca)}} \] \[ area = \pi r^{2} \]


正多角形の内接円 RegularPolygonIncircle

RegularPolygonIncircle
辺の長さを指定した正多角形の内接円の半径と円の面積を出力します
【 例 】
入力
length 1.0
n 5
出力
r 0.69
area 1.49

【 計算式 】
\[ r = \frac{l}{2tan^{2}\frac{\pi}{n}} \] \[ area = \pi r^{2} \]


正多角形の外接円 RegularPolygonCircumcircle

RegularPolygonCircumcircle
辺の長さを指定した正多角形の外接円の半径と円の面積を出力します
【 例 】
入力
length 1.0
n 5
出力
r 0.85
area 2.27

【 計算式 】
\[ r = \frac{l}{2sin\frac{\pi}{n}} \] \[ area = \pi r^{2} \]


2点間の距離と角度 LinearPtoP

LinearPtoP
平面座標上の2点を通る直線の距離と角度
【 例 】
入力
p1 [0.0,0.0]
p2 [1.0,0.8]
出力
distance 1.28
angle 38.66

【 計算式 】
\[ distance = \sqrt{(p2_x-p1_x)^{2}+(p2_y-p1_y)^{2}} \] \[ angle = tan~{-1}\left( \frac{p2_y-p1_y}{p2_x-p1_x}\right) \] 計算式ではp1[0]を\(p1_x\)、p1[1]を\(p1_y\)と記述しています


2直線の交点と角度 Intersection

Intersection
平面座標上の2直線の交点の座標と交差角度


Line1とLine2は2次元配列
始点の座標 xは[0,0], yは[0,1]
終点の座標 xは[1,0], yは[1,1]
【 例 】
入力
L1 [0.0,0.5] [1.0,1.0]
L2 [1.0,0.0][0.0,1.0]
出力
point [0.33,0.67]
angle -71.57

【 計算式 】
L1を一次関数(ax+b)に変換 \begin{align} P1=&(L1[0,0],L[0,1]) \\ P2=&(L1[1,0],L[1,1]) \\ a1=&\frac{(P2_y-P1_y)}{(P2_x-P1_x)} \\ b1=&\frac{(P2_x*P1_y-P1_x*P2_y)}{(P2_x-P1_x)} \end{align} L2も同様に一次関数(ax+b)に変換して\(a2,b2\)を算出

L1,L2から \begin{align} point_x = &\frac{(b2-b1)}{(a1-a2)} \\ point_y = &a1*point_x+b1 \\ angle=&tan^{-1}\left(\frac{a2-a1}{1+a1*a2} \right) \end{align}


原点を中心に回転 PointRotate

PointRotate
平面座標上の原点を中心に回転
【 例 】
入力
p [1.0,0.8]
angle 30.0
出力
out_p [0.47,1.19]
angle -71.57

【 計算式 】
\begin{align} \theta =& angle\frac{\pi}{180} \\ outp_x =& p_x*cos\theta-p_y*sin\theta \\ outp_y =& p_x*sin\theta+p_y*cos\theta \\ \end{align} 計算式ではp[0]を\(p_x\)、p[1]を\(p_y\)と記述しています


直交座標から極座標 PolarCoordinates

PolarCoordinates
直交座標から極座標へ変換
【 例 】
入力
p [1.0,0.8]
出力
length 1.28
angle 38.66

【 計算式 】
\begin{align} length =& \sqrt{p_x^{2}+p_y^{2}} \\ \theta =& tan^{-1}\frac{p_y}{p_x} \\ angle =& \frac{180}{\pi}\theta \end{align} 計算式ではp[0]を\(p_x\)、p[1]を\(p_y\)と記述しています


極座標から直交座標 CartesianCoordinates

CartesianCoordinates
極座標から直交座標へ変換
【 例 】
入力
length 2.0
angle 30.0
出力
p [1.73,1.00]

【 計算式 】
\begin{align} \theta =& angle\frac{\pi}{180} \\ p_x =& length\cdot cos\theta \\ p_y =& length\cdot sin\theta \end{align} 計算式ではp[0]を\(p_x\)、p[1]を\(p_y\)と記述しています


3点を通る円の中心 GetCenter2D

GetCenter2D
平面の3点を通る円の中心と半径を求める
【 例 】
入力
A [-1.0,2.0]
B [0.0,1.0]
C [1.0,1.0]
出力
P0 [0.5,2.5]
r 1.58

【 計算式 】
\[ a = \begin{bmatrix} A_x & A_y & 1 \\ B_x & B_y & 1 \\ C_x & C_y & 1 \end{bmatrix} \] \[ bx = \begin{bmatrix} A_x^{2}+A_y^{2} & A_y & 1 \\ B_x^{2}+B_y^{2} & B_y & 1 \\ C_x^{2}+C_y^{2} & C_y & 1 \end{bmatrix} \] \[ by = \begin{bmatrix} A_x^{2}+A_y^{2} & A_x & 1 \\ B_x^{2}+B_y^{2} & B_x & 1 \\ C_x^{2}+C_y^{2} & C_x & 1 \end{bmatrix} \] \begin{align} p0_x=&-\left(\frac{bx}{2a}\right) \\ p0_y=&-\left(\frac{by}{2a}\right) \\ r=&\sqrt{(A_x-p0_x)^2+(A_y-P_y)^2} \end{align} 計算式ではA[0]を\(A_x\)、A[1]を\(A_y\)と記述しています


参考URL

高精度計算サイト https://keisan.casio.jp/
WolframmathWorld https://mathworld.wolfram.com/Circumcircle.html