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á
Download

přednáška1 (.pdf)