MathLabs

12年生

空間における座標

座標幾何学を Oxyz 系を用いて3次元空間に拡張したもの。

直観3本目の軸を加える:平面から OxyzOxyz 空間へ

部屋の中の任意の点——たとえば天井の照明の先端——の位置は、3つの数で表せる:一方の壁に沿ってどれだけ進むか(xx)、隣の壁に沿ってどれだけ進むか(yy)、床からどれだけ高いか(zz)。部屋の隅 OO で互いに垂直な3本の軸 Ox,Oy,OzOx, Oy, Oz を組み合わせると座標系 OxyzOxyz が得られ、空間内のすべての点 M(x,y,z)M(x,y,z)、すべての向き、そして平面や曲面が数と方程式に変わる。

$Oxyz$ 座標におけるインタラクティブな3D曲面プロット。
OxyzOxyz 座標系に描かれた曲面 z=f(x,y)z=f(x,y)。関数の種類と縦方向のスケールを変えて、x,y,zx,y,z の方程式が空間内にどのように形を切り出すか見てみよう。

中高座標によるベクトル・平面・直線・球面

定義: 内積と外積 (u⃗×v⃗\vec{u}\times\vec{v})

2つの空間ベクトル u⃗=(u1,u2,u3)\vec{u}=(u_1,u_2,u_3) と v⃗=(v1,v2,v3)\vec{v}=(v_1,v_2,v_3) に対し、内積は数 u⃗⋅v⃗=u1v1+u2v2+u3v3\vec{u}\cdot\vec{v}=u_1v_1+u_2v_2+u_3v_3(u⃗⊥v⃗\vec{u}\perp\vec{v} のときかつそのときに限り 00)であり、外積 u⃗×v⃗\vec{u}\times\vec{v} は u⃗\vec{u} と v⃗\vec{v} の両方に垂直な新しいベクトルである:

u⃗×v⃗=(u2v3−u3v2, u3v1−u1v3, u1v2−u2v1)\vec{u}\times\vec{v}=(u_2v_3-u_3v_2,\,u_3v_1-u_1v_3,\,u_1v_2-u_2v_1)

長さ ∣u⃗×v⃗∣|\vec{u}\times\vec{v}| は u⃗\vec{u} と v⃗\vec{v} が張る平行四辺形の面積に等しく、2つのベクトルが平行なとき u⃗×v⃗=0⃗\vec{u}\times\vec{v}=\vec{0} となる。このため u⃗×v⃗\vec{u}\times\vec{v} は、平面内の2つの方向からその平面の法線ベクトルを作る標準的な道具になる。

定義: 空間内の平面・直線・球面

ゼロでない法線ベクトル n⃗=(A,B,C)\vec{n}=(A,B,C) を持つ平面 (P)(P) の一般形方程式は Ax+By+Cz+D=0Ax+By+Cz+D=0 である。点 M0(x0,y0,z0)M_0(x_0,y_0,z_0) を通り方向ベクトル u⃗=(a,b,c)\vec{u}=(a,b,c) を持つ直線は、媒介変数表示 x=x0+at,  y=y0+bt,  z=z0+ctx=x_0+at,\;y=y_0+bt,\;z=z_0+ct(t∈Rt\in\mathbb{R})または標準形 x−x0a=y−y0b=z−z0c\frac{x-x_0}{a}=\frac{y-y_0}{b}=\frac{z-z_0}{c}(a,b,c≠0a,b,c\neq 0 のとき)と書ける。中心 I(x0,y0,z0)I(x_0,y_0,z_0)、半径 R>0R>0 の球面の方程式は (x−x0)2+(y−y0)2+(z−z0)2=R2(x-x_0)^2+(y-y_0)^2+(z-z_0)^2=R^2 である。

Ax+By+Cz+D=0Ax+By+Cz+D=0

OxyzOxyz における距離はピタゴラスの定理と正射影から直接得られる:2点 A,BA,B 間の距離は AB=(xB−xA)2+(yB−yA)2+(zB−zA)2AB=\sqrt{(x_B-x_A)^2+(y_B-y_A)^2+(z_B-z_A)^2} であり、点 M0(x0,y0,z0)M_0(x_0,y_0,z_0) から平面 Ax+By+Cz+D=0Ax+By+Cz+D=0 への垂線の距離は次式で与えられる:

d(M0,(P))=∣Ax0+By0+Cz0+D∣A2+B2+C2d(M_0,(P))=\frac{|Ax_0+By_0+Cz_0+D|}{\sqrt{A^2+B^2+C^2}}
OxyzOxyz における対象と方程式のまとめ
対象決定するベクトル・データ方程式・公式
平面法線ベクトル n⃗=(A,B,C)\vec{n}=(A,B,C)Ax+By+Cz+D=0Ax+By+Cz+D=0
直線点 M0M_0、方向ベクトル u⃗=(a,b,c)\vec{u}=(a,b,c)x=x0+at,  y=y0+bt,  z=z0+ctx=x_0+at,\;y=y_0+bt,\;z=z_0+ct
球面中心 I(x0,y0,z0)I(x_0,y_0,z_0)、半径 RR(x−x0)2+(y−y0)2+(z−z0)2=R2(x-x_0)^2+(y-y_0)^2+(z-z_0)^2=R^2
点と平面の距離M0(x0,y0,z0)M_0(x_0,y_0,z_0) と n⃗=(A,B,C)\vec{n}=(A,B,C)d(M0,(P))=∣Ax0+By0+Cz0+D∣A2+B2+C2d(M_0,(P))=\frac{|Ax_0+By_0+Cz_0+D|}{\sqrt{A^2+B^2+C^2}}

大学定理:外積と点から平面までの距離

OxyzOxyz において、点 M0(x0,y0,z0)M_0(x_0,y_0,z_0) から平面 (P):Ax+By+Cz+D=0(P): Ax+By+Cz+D=0(A2+B2+C2>0A^2+B^2+C^2>0)への垂線の距離は d(M0,(P))=∣Ax0+By0+Cz0+D∣A2+B2+C2d(M_0,(P))=\frac{|Ax_0+By_0+Cz_0+D|}{\sqrt{A^2+B^2+C^2}} である。

なぜ正しいのか?

Ax0+By0+Cz0+DAx_0+By_0+Cz_0+D を計算すると、点 M0M_0 が平面の方程式からどれだけ外れているかが法線ベクトル n⃗=(A,B,C)\vec{n}=(A,B,C) の長さ ∣n⃗∣=A2+B2+C2|\vec{n}|=\sqrt{A^2+B^2+C^2} 倍されて測られる。∣n⃗∣|\vec{n}| で割ることで、その代数的なずれが法線方向の実際の幾何学的距離に換算される。

証明

平面 (P) 上の任意の点 M1(x1,y1,z1) をとる。M1 は (P) 上にあるので Ax1 + By1 + Cz1 + D = 0 を満たし、D = -(Ax1 + By1 + Cz1) である。

M0 から (P) への正射影を H とする。ベクトル M1M0 = (x0-x1, y0-y1, z0-z1) は平面に沿う成分と法線成分 HM0 に分解されるため、距離 d(M0,(P)) = |HM0| は M1M0 の法線ベクトル n = (A,B,C) へのスカラー射影の絶対値に等しい。

その大きさは |n . M1M0| / |n| = |A(x0-x1) + B(y0-y1) + C(z0-z1)| / sqrt(A^2+B^2+C^2) である。

絶対値の中の -(Ax1 + By1 + Cz1) を D に置き換えれば |Ax0 + By0 + Cz0 + D| / sqrt(A^2+B^2+C^2) が得られ、証明が完了する。

任意の u⃗=(u1,u2,u3)\vec{u}=(u_1,u_2,u_3) と v⃗=(v1,v2,v3)\vec{v}=(v_1,v_2,v_3) に対し、外積 u⃗×v⃗=(u2v3−u3v2, u3v1−u1v3, u1v2−u2v1)\vec{u}\times\vec{v}=(u_2v_3-u_3v_2,\,u_3v_1-u_1v_3,\,u_1v_2-u_2v_1) は (u⃗×v⃗)⋅u⃗=0(\vec{u}\times\vec{v})\cdot\vec{u}=0、(u⃗×v⃗)⋅v⃗=0(\vec{u}\times\vec{v})\cdot\vec{v}=0、および ∣u⃗×v⃗∣2=∣u⃗∣2∣v⃗∣2−(u⃗⋅v⃗)2|\vec{u}\times\vec{v}|^2=|\vec{u}|^2|\vec{v}|^2-(\vec{u}\cdot\vec{v})^2 を満たす。

なぜ正しいのか?

最初の2つの等式は u⃗×v⃗\vec{u}\times\vec{v} が両方の入力ベクトルに垂直であることを確かめるもので、u⃗\vec{u} と v⃗\vec{v} が張る平面の法線ベクトルをそのまま与える。3つ目の等式は ∣u⃗×v⃗∣=∣u⃗∣∣v⃗∣sin⁡θ|\vec{u}\times\vec{v}|=|\vec{u}||\vec{v}|\sin\theta と書き換えられ、u⃗\vec{u} と v⃗\vec{v} が張る平行四辺形の(底辺×高さの)面積になる。

証明

座標の定義から内積を直接計算する:(u x v) . u = (u2 v3 - u3 v2) u1 + (u3 v1 - u1 v3) u2 + (u1 v2 - u2 v1) u3。

3つの積を展開すると u1 u2 v3 - u1 u3 v2 + u2 u3 v1 - u1 u2 v3 + u1 u3 v2 - u2 u3 v1 = 0 となり、6つの項が対になって打ち消し合う。(u x v) . v = 0 の計算もまったく同じである。

大きさの恒等式については、|u x v|^2 = (u2 v3 - u3 v2)^2 + (u3 v1 - u1 v3)^2 + (u1 v2 - u2 v1)^2 を展開する。一方、|u|^2 |v|^2 - (u . v)^2 = (u1^2+u2^2+u3^2)(v1^2+v2^2+v3^2) - (u1 v1 + u2 v2 + u3 v3)^2 を展開する。

2つ目の式では対角項 u1^2 v1^2, u2^2 v2^2, u3^2 v3^2 が消え、|u x v|^2 の展開とまったく同じ非対角項 u_i^2 v_j^2 - 2 u_i u_j v_i v_j が残る。u . v = |u||v|cos(theta) より、これは |u|^2|v|^2(1 - cos^2(theta)) = (|u||v|sin(theta))^2 に等しい。

大学実世界での応用と具体例

あらゆる3Dグラフィックスエンジン、CADソフト、ロボットアームの制御装置、衛星測位受信機は OxyzOxyz 座標系の内部で動いている。画面上の三角形メッシュの陰影計算では、各三角形の2つの辺ベクトルの外積 u⃗×v⃗\vec{u}\times\vec{v} をとって法線 n⃗=(A,B,C)\vec{n}=(A,B,C) を求め、光の方向との内積をとる。衝突判定やドローンの障害物との間隔確認は、点と平面の距離 d(M0,(P))=∣Ax0+By0+Cz0+D∣A2+B2+C2d(M_0,(P))=\frac{|Ax_0+By_0+Cz_0+D|}{\sqrt{A^2+B^2+C^2}} や球面の方程式 (x−x0)2+(y−y0)2+(z−z0)2=R2(x-x_0)^2+(y-y_0)^2+(z-z_0)^2=R^2 の計算に帰着する。衛星測位(GPS)は、既知の OxyzOxyz 座標にある衛星を中心とする球面の交わりを求める。

例: 外積を用いた3点を通る平面の方程式

3点 A(1,0,0)A(1,0,0)、B(0,2,0)B(0,2,0)、C(0,0,2)C(0,0,2) を通る平面 (P)(P) の方程式を求めよ。

解答

平面内の2つのベクトルを作る:AB = (-1, 2, 0)、AC = (-1, 0, 2)。

それらの外積から (P) の法線ベクトルが得られる:AB x AC = (22 - 00, 0(-1) - (-1)2, (-1)0 - 2(-1)) = (4, 2, 2)。2で割ってより簡単な法線ベクトル n = (2, 1, 1) を使える。

点 A(1,0,0) を通る式 2(x - 1) + 1(y - 0) + 1(z - 0) = 0 より、平面の方程式 2x + y + z - 2 = 0 が得られる。

例: ドローンから傾斜屋根の平面までの安全距離

局所的な OxyzOxyz 座標系(単位:メートル)において、傾斜した屋根が平面 (P):2x−2y+z−5=0(P): 2x-2y+z-5=0 上にあり、ホバリング中のドローンが点 M0(3,1,4)M_0(3,1,4) にある。ドローンから屋根までの垂線の距離と、屋根を突き抜けない M0M_0 を中心とする最大の球面の方程式を求めよ。

解答

(A,B,C)=(2,−2,1)(A,B,C)=(2,-2,1) と M0(3,1,4)M_0(3,1,4) に対して d(M0,(P))=∣Ax0+By0+Cz0+D∣A2+B2+C2d(M_0,(P))=\frac{|Ax_0+By_0+Cz_0+D|}{\sqrt{A^2+B^2+C^2}} を用いると、分子は ∣2(3)−2(1)+1(4)−5∣=∣6−2+4−5∣=3|2(3)-2(1)+1(4)-5|=|6-2+4-5|=3 である。

分母は 22+(−2)2+12=9=3\sqrt{2^2+(-2)^2+1^2}=\sqrt{9}=3 なので、安全距離は d(M0,(P))=3/3=1d(M_0,(P))=3/3=1 メートルとなる。

屋根と交わらない M0M_0 を中心とする最大の球面は (P)(P) に接するので、その半径は R=d(M0,(P))=1R=d(M_0,(P))=1 である。(x−x0)2+(y−y0)2+(z−z0)2=R2(x-x_0)^2+(y-y_0)^2+(z-z_0)^2=R^2 より、その方程式は (x−3)2+(y−1)2+(z−4)2=1(x-3)^2+(y-1)^2+(z-4)^2=1 となる。

OxyzOxyz において、u⃗=(1,2,0)\vec{u}=(1,2,0) と v⃗=(0,1,3)\vec{v}=(0,1,3) の外積 u⃗×v⃗\vec{u}\times\vec{v} はどれか。

平面 3x−y+4z−7=03x-y+4z-7=0 の法線ベクトルはどれか。

球面 (x−1)2+(y+2)2+z2=9(x-1)^2+(y+2)^2+z^2=9 の中心 II と半径 RR はどれか。

3Dグラフィックスエンジンが頂点 A,B,CA,B,C を持つ三角形の面に陰影をつけるために法線ベクトルを必要としている。辺ベクトル u⃗=AB→\vec{u}=\overrightarrow{AB} と v⃗=AC→\vec{v}=\overrightarrow{AC} に対するどの演算が三角形に垂直なベクトルを与えるか。