空間図形の取り扱いについて 平面の定義(1) • 法線ベクトル(基本ベクトル)U(3次元)と原点 と平面との距離Lで表される。 – ※ 法線ベクトルの長さは1 • 固有ベクトルV(3次元) – 計算に便利 – 原点を通る平面(L=0)の場合は使用できない(解 が無限になる) – V=U÷L 平面の定義(2) C点=原点からの距離が最も近い点 Z 平面 ☆平面の求め方 点Q 法線ベクトルU C点 L Y X Q・V=1 :QとVとの内積 ※ Q=通過点で、3点あれば 平面が求まる。 平面の求め方(例) Z 2 0 0 0 3 0 (0,0,5) 0 0 5 法線ベクトルU 平面 C点 (0,3,0) Y X (2,0,0) ・V= 1 1 1 で求まる 直線の定義 • 直線は通過点と方向ベクトルU(3次元)で表され る 通過点 法線ベクトルU 2平面から直線を求める 通過点を求める式 平面1:U1、L1 U1X U1Y U1Z U2X U2Y U2Z 1 1 L1 ・Q= L2 1 1 平面2:U2、L2 ※ 第3行は0,0,0以外何でもよい 通過点 Q 方向ベクトルを求める式 方向ベクトルU U1X U1Y U1Z U2X U2Y U2Z 1 1 0 ・U= 1 ※ 第3行は0,0,0以外何でもよい 0 1 平面と点の距離 (hの長さを求める) 点P 平面 法線ベクトルU C点 h L 点Pを通りベクトルUに垂直な 平面の式から L+h=U・P ∴ h=U・P-L ※ 点Pのほうが原点から遠 いなら、hは+になる 直線と点の距離 方向ベクトルV 通過点Q |QP|・cosθ=QP・V r |QP|・sinθ=r 両辺を二乗して加えると |QP|^2=(QP・V)^2+r^2 点P ∴ r= |QP|^2ー(QP・V)^2 直線と直線の距離 Q1 2直線に直交する方向ベクトルV3を求める V2 V1X V1Y V1Z V2X V2Y V2Z h 1 1 0 ・ V3 = 1 0 1 ※ 第3行は0,0,0以外何でもよい V3を求めた後、V3を正規化する。 V1 V3を法線ベクトルとしQ1を通る平面は Q2 V3 Q1・V3=L1 で表される 同様にQ2を通る平面は Q2・V3=L2 で表される ∴ h=|L1ーL2|=| Q1・V3ー Q2・V3| 点群の平面近似 • 最小二乗法とは – Σ(近似値誤差)^2を最小にする方法 点群 h(誤差) 以下の式で求めることができる Σ{Pi1*Pi1}、 Σ{Pi2*Pi1}、 Σ{Pi3*Pi1} Σ{Pi1} Σ{Pi1*Pi2}、 Σ{Pi2*Pi2}、 Σ{Pi3*Pi2} ・ V = Σ{Pi2} Σ{Pi1*Pi3}、 Σ{Pi2*Pi3}、 Σ{Pi3*Pi3} Σ{Pi3} ※ i = 1~点群の数 点群の球面近似 まず、点群の任意の2点が面対称になる平面Siを求める。 平面Siは球面中心近くを通るので次式で球面の中心Cを求めることができる Pi Pi+1 P2 P1 焦点C 以下の式で求めることができる Σ{Ui1*Ui1}、 Σ{Ui2*Ui1}、 Σ{Ui3*Ui1} Σ{Li*Ui1} Σ{Ui1*Ui2}、 Σ{Ui2*Ui2}、 Σ{Ui3*Ui2} ・ C = Σ{Li*Ui2} Σ{Ui1*Ui3}、 Σ{Ui2*Ui3}、 Σ{Ui3*Ui3} Σ{Li*Ui3} ※ i = 1~点群の数(数が多いほど精度がよくなる) 参考:ガウスの消去法(線形一次連立方程式の解法) a11 a12 a13 a21 a22 a23 a31 a32 a33 X ・ Y = Z C1 C2 C3 a11 a12 a13 C1 a21 a22 a23 C2 a31 a32 a33 C3 手順1:1行全体を1行1列目で割ることで1行1列目を1にする ※1行1列目が0の場合は、他の行と入れ替える 手順2:2行目全体-1行目全体*a21を行い、2行1列 目を0にする。3行目も同様 手順3:手順1と同様に、2行2列目を1にする 手順4:3行目全体-2行目全体*a32を行い、2行1列 目を0にする。1行目も同様 手順5:手順1と同様に、3行3列目を1にする 手順6:1行目全体-3行目全体*a13を行い、1行3列 目を0にする。2行目も同様
© Copyright 2024 ExpyDoc