Vzorce počítačové grafiky
Vektorové operace
součet vektorů rozdíl vektorů opačný vektor násobení vektoru skalárem úhel dvou vektorů velikost vektoru a vzdálenost dvojice bodů v rovině (v prostoru analogicky)
G u = B − A = ( b1 − a1 , b2 − a2 ) G 2 2 u = ( b1 − a1 ) + ( b2 − a2 ) Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Vektorové operace
G G skalární součin dvou vektorů u = ( u1 , u2 ) a v = ( v1 , v2 ) G G u ⋅ v = u1v1 + u2 v2 G G G u = u ⋅u G G G G α u = α 2 (u ⋅ u ) = α u
platí:
Počítačová geometrie
G G G G u ⋅v = v ⋅u G G G G G G G (u + v ) ⋅ w = u ⋅ w + v ⋅ w G G G G u v u ⋅ = α α ( ) ( ⋅v) Petra Surynková
Vzorce počítačové grafiky
Vektorové operace G G úhel ϕ ∈ 0, π nenulových vektorů u , v G G u ⋅v cos ϕ = G G u v
Cauchyova nerovnost
G G G G G G u ⋅ v ≤ u v ; ∀u , v
rovnoběžné vektory kolmé vektory
Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Vektorové operace
vektorový součin dvou vektorů
G G ⎛ u2 u ×v = ⎜ ⎝ v2
G G u , v v prostoru
u3 u1 u3 u1 u2 ⎞ ,− , ⎟ v3 v1 v3 v1 v2 ⎠
lze vyjádřit pomocí G G G bázových vektorů kartézské soustavy souřadnic i , j , k G G G
i j G G u × v = u1 u2 v1 v2
Počítačová geometrie
k u3 v3
Petra Surynková
Vzorce počítačové grafiky
Vektorové operace
vektorový součin dvou vektorů
G G u ×v
G G u , v v prostoru
C G v
ϕ A
G u
B
platí
G G G G G G (u × v ⊥ u ) ∧ (u × v ⊥ v ) G G G G G u × v = o ⇔ u , v LZ G G G G G u × v ≠ o ⇔ u , v LN G G G G u × v = u v sin ϕ
geometrický význam vektorového součinu Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Vektorové operace
vektorový součin dvou vektorů
G G u , v v prostoru
G v
G G u ×v
ϕ
C G v
ϕ A
G u
G G G G P = u × v = u v sin ϕ G u
B
geometrický význam vektorového součinu Počítačová geometrie
G v sin ϕ
obsah rovnoběžníka sestrojeného nad oběma vektory umístěnými do společného bodu trojúhelník -
1 P 2
Petra Surynková
Vzorce počítačové grafiky
Vektorové operace
G G G u , v , w v prostoru G G G G G G [ u , v , w] = ( u × v ) ⋅ w
smíšený součin dvou vektorů
D umístění vektorů do společného počátečního bodu
G w G n A
Počítačová geometrie
G v
C
G u B
Petra Surynková
Vzorce počítačové grafiky
Vektorové operace
smíšený součin dvou vektorů
G G G u , v , w v prostoru u1 G G G u [ , v , w] = v1
u2
u3
v2
w1
w2
v3 = w3
D G w
G n A
G v
=− C
G u B
geometrický význam smíšeného součinu Počítačová geometrie
a1
a2
b1
b2
c1
c2
d1
d2
G G G V = [ u , v , w]
a3 1 b3 1 c3 1 d3 1
- objem rovnoběžnostěnu Petra Surynková
Vzorce počítačové grafiky
Geometrie v rovině a v prostoru
různá vyjádření přímky a roviny vzájemná poloha dvou přímek – rovnoběžnost, různoběžnost (průsečík), mimoběžnost vzájemná poloha rovin – rovnoběžnost, různoběžnost (průsečnice) vzdálenost dvou bodů vzdálenost bodu od přímky vzdálenost bodu od roviny vzájemná poloha bodu a geometrického útvaru odchylky
Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Vzdálenost bodu od přímky v rovině přímka – obecná rovnice ax + by + c = 0,( a, b) ≠ (0,0) vzdálenost bodu P[ p1 , p2 ] ap1 + bp2 + c d= a 2 + b2
orientovaná vzdálenost bodu P[ p1 , p2 ] od přímky určené dvěma body A[ a1 , a2 ], B[b1 , b2 ], A ≠ B
přímka – parametrické vyjádření
X = A + ( B − A)t , t ∈ \
Počítačová geometrie
tj. vzdálenost opatřená znaménkem ,,+“ nebo ,,-“ podle toho, zda je bod nalevo nebo napravo od přímky Petra Surynková
Vzorce počítačové grafiky
orientovaná vzdálenost bodu P[ p1 , p2 ] od přímky určené dvěma body A[ a1 , a2 ], B[b1 , b2 ], A ≠ B
d ( A, I ) = t I B − A
P
sP I
B A tI vzdálenost bodu od přímky, význam parametrů t a s Počítačová geometrie
d ( P, AB ) = d ( P, I ) = sP B − A
tI < 0
- bod na přímce před body A a B
t I ∈ 0,1
- bod úsečky AB
tI > 0
- bod na přímce za body A a B
sP > 0
- bod P leží nalevo od přímky AB
sP = 0
- bod P leží na přímce AB
sP < 0
- bod P leží napravo od přímky AB Petra Surynková
Vzorce počítačové grafiky
Vzdálenost bodu od přímky v prostoru přímka určená dvěma body A[ a1 , a2 , a3 ], B[b1 , b2 , b3 ], A ≠ B
X = A + ( B − A)t , t ∈ \ G JJJG u = AB
POZOR – v prostoru nelze přímku popsat jednou obecnou rovnicí
vzdálenost bodu
P[ p1 , p2 , p3 ]
G ( P − A) ⋅ u G d = −( P − A) + G2 u u Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Vzdálenost bodu od přímky v prostoru přímka určená dvěma body A[ a1 , a2 , a3 ], B[b1 , b2 , b3 ], A ≠ B
X = A + ( B − A)t , t ∈ \ G JJJG u = AB
vzdálenost bodu
NEBO
P[ p1 , p2 , p3 ]
pomocí roviny kolmé přímce a procházející daným bodem
NEBO
pomocí vektorového součinu
Počítačová geometrie
G JJJG u × AP d= G u Petra Surynková
Vzorce počítačové grafiky
Vzdálenost bodu od úsečky
leží-li bod v pásu vymezeném dvěma kolmicemi na úsečku v jejích koncových bodech vzdálenost bodu od úsečky = vzdálenosti bodu od přímky
leží-li mimo pás, je výsledek menší ze vzdáleností ke koncovým bodům úsečky k testování lze využít parametr t I z předchozích vztahů
Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Vzdálenost bodu od úsečky
P P
d
d
B
B
I A
Počítačová geometrie
A
Petra Surynková
Vzorce počítačové grafiky
Poloha bodu vůči přímce a úsečce
úloha má smysl pouze v rovině (v prostoru vůči rovině) lze použít předchozí vztah pro výpočet sP
stačí zjistit znaménko čitatele
pro bod P[ p1 , p2 ] a přímku (úsečku) určenou dvěma body
( p2 − a2 )(b1 − a1 ) − ( p1 − a1 )(b2 − a2 )
Počítačová geometrie
>0 =0 <0
A[a1 , a2 ], B[b1 , b2 ], A ≠ B
- bod P leží nalevo od přímky AB - bod P leží na přímce AB - bod P leží napravo od přímky AB
Petra Surynková
Vzorce počítačové grafiky
Vzdálenost dvou rovnoběžných přímek
převedení na předchozí případ
Vzdálenost dvou mimoběžných přímek
rovná se délce jejich nejkratší příčky (k oběma mimoběžkám kolmá) nebo odvození pomocí vektorového součinu
G G JJJG ( u × v ) ⋅ AB d= G G u ×v
Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
obecná rovnice roviny zadané třemi nekolineárními body
A[a1 , a2 , a3 ], B[b1 , b2 , b3 ], C[c1 , c2 , c3 ]
x
y
z
1
a1 b1 c1
a2 b2 c2
a3 1 =0 b3 1 c3 1
analogicky lze zapsat i pro přímku
Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Vzdálenost bodu od roviny rovina – obecná rovnice ax + by + cz + d = 0,( a, b, c ) ≠ (0,0,0) vzdálenost bodu P[ p1 , p2 , p3 ] d=
ap1 + bp2 + cp3 + d a 2 + b2 + c2
analogicky k přímce v rovině - orientovaná vzdálenost bodu P[ p1 , p2 , p3 ] od roviny určené třemi nekolineárními body
A[a1 , a2 , a3 ], B[b1 , b2 , b3 ], C[c1 , c2 , c3 ]
Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Poloha bodu vůči rovině rovina – obecná rovnice ax + by + cz + d = 0,( a, b, c ) ≠ (0,0,0) poloha bodů P[ p1 , p2 , p3 ], Q[ q1 , q2 , q3 ]
h1 = ap1 + bp2 + cp3 + d h2 = aq1 + bq2 + cq3 + d h1h2 > 0(< 0) ⇒ P, Q
Počítačová geometrie
leží ve stejné (opačné) polorovině
Petra Surynková
Vzorce počítačové grafiky
Svazek rovin
společná průsečnice 2
∑ λ ( a x + b y + c z + d ) = 0, ( λ , λ ) ≠ (0,0) i =1
i
i
i
i
i
1
2
Trs rovin
společný bod 3
∑ λ ( a x + b y + c z + d ) = 0, ( λ , λ , λ ) ≠ (0,0,0) i =1
Počítačová geometrie
i
i
i
i
i
1
2
3
Petra Surynková
Vzorce počítačové grafiky
Odchylka dvou přímek
směrové vektory přímek –
G G u ⋅v cos ϕ = G G u v
ϕ ∈ 0, π
G G u, v
Odchylka přímky a roviny
G G u ⋅n cosψ = G G = sin ϕ u n
p G ψ n
ϕ
G u
Počítačová geometrie
ρ Petra Surynková
Vzorce počítačové grafiky
Odchylka dvou rovin
normálové vektory rovin –
G G nα , nβ
G G nα ⋅ nβ cos ϕ = G G nα nβ
Vzájemné polohy přímek, rovin
průsečíky, průsečnice vzájemná poloha tří rovin
Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Poloha bodu vůči mnohoúhelníku
lokalizace bodu v konvexním a nekonvexním mnohoúhelníku konvexní mnohoúhelník – orientace vrcholů, použití determinantů nekonvexní mnohoúhelník – paprskový algoritmus
určení polohy bodu vzhledem k množině mnohoúhelníků
viz minulý semestr
Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Poloha bodu vůči kružnici
snadné – dosazení do rovnice kružnice pro střed S [ s1 , s2 ] a poloměr r a bod P[ p1 , p2 ]
( p1 − s1 ) + ( p2 − s2 ) 2
2
− r2
>0 =0 <0
- bod P leží vně kružnice - bod P leží na kružnici - bod P leží uvnitř kružnice
nebo - z porovnání vzdálenosti bodu a středu s poloměrem
P S Počítačová geometrie
d ( P, k ) = d ( P, S ) − r
Petra Surynková
Vzorce počítačové grafiky
Poloha bodu vůči kouli pro střed S [ s1 , s2 , s3 ] a poloměr r a bod P[ p1 , p2 , p3 ]
( p1 − s1 ) + ( p2 − s2 ) + ( p3 − s3 ) − r 2 2
2
2
>0 =0 <0
- bod P leží vně koule - bod P leží na povrchu koule - bod P leží uvnitř koule
nebo – opět z porovnání
Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Poloha přímky a kružnice přímka y = kx + q 2 2 2 kružnice x + y = r
(1 + k ) x D
Počítačová geometrie
+ 2kqx + q 2 − r 2 = 0
2
2
>0 =0 <0
- přímka protíná kružnici ve dvou bodech - přímka je tečnou kružnice - přímka neprotíná kružnici
Petra Surynková
Vzorce počítačové grafiky
Kružnice zadaná třemi body A[a1 , a2 ], B[b1 , b2 ], C[c1 , c2 ]
rovnice kružnice
x2 + y2 a12 + a22 b12 + b22 c12 + c22
x a1 b1 c1
y a2 b2 c2
1 1 =0 1 1
určení středu
a = b1 − a1
c = c1 − a1
e = a ( a1 + b1 ) + b ( a2 + b2 )
b = b2 − a2
d = c2 − a2
f = c ( a1 + c1 ) + d ( a2 + c2 )
Počítačová geometrie
Petra Surynková
Vzorce počítačové grafiky
Kružnice zadaná třemi body e = a ( a1 + b1 ) + b ( a2 + b2 ) a = b1 − a1 c = c1 − a1
b = b2 − a2
f = c ( a1 + c1 ) + d ( a2 + c2 )
d = c2 − a2
g = 2 ( a ( c2 − b2 ) − b ( c1 − b1 ) ) s1 = ( de − bf ) / g s2 = ( af − ce ) / g
je-li g jinak
= 0 , leží zadané body na přímce a kružnice neexistuje r = ( a1 − s1 ) + ( a2 − s2 ) 2
Počítačová geometrie
2
2
Petra Surynková
Vzorce počítačové grafiky
Plocha trojúhelníka s vrcholy A[ a1 , a2 ], B[b1 , b2 ], C[c1 , c2 ]
a1
1 P = b1 2 c1
a2 1 b2 1 c2 1
Plocha mnohoúhelníka
triangulace, součet ploch trojúhelníků
Počítačová geometrie
Petra Surynková