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