ご利用にあたって
θ = Math.atan(y/x) でのθをX軸から反時計回りに0≦θ<2πの範囲で求めます。
θ = atan2PI( 2, 1.732) = (1/3)π
θ = atan2PI(-2, 1.732) = (2/3)π
θ = atan2PI(-2,-1.732) = (4/3)π
θ = atan2PI( 2, 1.732) = (5/3)π
点Aを、Oを中心に、X軸から逆時計回りに t(度)回転した点Bの座標を戻します。
(x0,y0 を省略すると 0,0 になります。O点=原点)
xb = rtn["xb"]; yb = rtn["yb"];
回転公式
xb = (xa-x0)*cos(t) - (ya-y0)*sin(t) + x0;
yb = (xa-x0)*sin(t) + (ya-y0)*cos(t) + y0;
ベクトルOAを延長したOBのB点の座標を戻します。
O点=原点 (x0,y0 = 0)のとき省略できます。
ptn = 1:d= = p OB=OA * p
ptn = 2:d= = AB OB=OA * AB
点Aからの距離:点Bからの距離=pa:pb の内分点 (xi,yi) と外分点 (xe,ye) を求めます。
線分ABの中点D、点CのDの点対称点をE、
線分ABの点Cからの垂点F、点CのDの点対称点をGとします。
入力:A、B、Cの座標
出力:D、E、F、Gの座標
AD、AFの長さ
直線を px+qy+r = 0 としたときのAD、AFの p, q, r
直線ABとCDの交点Pの座標、線分ABとCDの交差判定(交わるか否か)をします。
交点Pの座標:rtn["xp"], rtn["yp"]
交差判定:rtn["cn"] = 1(交差する)/ 0(交差しない)
① 1 ② 0 ③ 0
三角形の辺と内角の3つを与えて他の辺と内角と面積をを求めます。
return [AB, BC, CA, A, B, C, S];
AB = rtn["AB"]; A = rtn["A"]; S = rtn["S"];
(角度はラジアンではなく度です。)
[拡大図]
三角形の頂点座標 (xa,ya, xb,yb, xc,yc) を与えて、上図で示した諸元を戻します。
戻り値の形式は連想配列ですので、例えば「 var 面積 = rtn["S"] 」とします。
自己交差を持たないn個の線分からなるn角形の頂点座標を与えて、面積 S を求めます。
正n角形の一辺の長さ a を与えて、諸元を求めます。
正n角形の外接円の半径 R を与えて、諸元を求めます。
以下の任意の1つの値を与えて、他の4つを求めます。
例:半径 = 2 を与える → rtn = geoCircleSphere("R", 2);
記号 | 公式 | |
半径 | R | R |
円周 | L | 2*π*R |
円面積 | S | π*R2 |
球面積 | SS | 4*π*R2 |
球体積 | V | (4/3)*π*R3 |
中心 (x0,y0)、半径 r の円と、直線 ax + by + c = 0 の距離 d と交点A、Bの座標
交点の個数を求めます。
(交わらないときは、xa,ya, xb,yb = 0 を戻します)
中心 (x0,y0)、半径 r の円と、2点A,Bを通る線分との垂直距離 d と交点C、Dの座標、
および、交点の個数 cn を求めます。
① C、Dあり cn = 2
② C、Dあり cn = 1
③ C、Dあり cn = 0
④ すべて0 cn = 0
入力:中心(xa,ya), 半径 ra の円と、中心(xb,yb), 半径 rb の円
出力:AB 2円の中心の距離
cn 交点の個数
= 0 ra+rb < AB 互いに外部にあり公差しない
= 0 AB < |ra-rb| 一方の円の内部に他方の円。交点なし
= 1 ra+rb = AB 2円が接する
= 2 それ以外 2円が重なる
(cn ≠ 0 のとき、次の値を出力)
xc, yc, xd, yd 交点C、Dの座標
(C.Dの位置は逆になることもあります)
CD 線分CDの長さ
a, b, c 直線CDの方程式 ax + by + c = 0
ta, tb 円中心と交点の角度
Sa, Sb 重なった部分の面積
入力:中心(x0,y0), 半径 rx, ry, X軸との傾き t(度) の楕円
(x-x0)2/rx2 + (y-y0)2/ry2 = 1 を (x0,y0) を中心に t 度回転
出力:wxx, wxy, wyy // 楕円の方程式
// wxx*(x-x0)2 - 2wx(y-y0)(x-x0)*y + wyy*(y-y0)2 = 1;
xa1,ya1, xa2,ya2, xb1,yb1, xb2,yb2 // A、A'、B、B' の座標
xc1,yc1, xc2,yc2, xd1,yd1, xd2,yd2 // C、C'、D、D' の座標
xf1,yf1, xf2,yf2 // 焦点 F、F' の座標
計算の概要