1 / 60
Grafika Komputerowa. Geometria 3W
Aleksander Denisiuk
Polsko-Japo ´nska Akademia Technik Komputerowych
Wydział Informatyki w Gda ´nsku
ul. Brzegi 55
80-045 Gda ´nsk
Geometria 3W
Przestrze ´n liniowaR
3 (Przypomnienie) Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*Najnowsza wersja tego dokumentu dost ˛epna jest pod adresem
Przestrze ´n liniowa
R
3
(Przypomnienie)
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*3 / 60
Definicja wektora
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*Wektorem nazywa si ˛e skierowany odcinek.
A
B
Kierunek wektora pokazuje strzałka.
Punkt
A
jest pocz ˛
atkiem wektora
Punkt
B
jest ko ´ncem wektora
Oznaczenie:
a
=
−−→
AB
Równo ´s ´c wektorów
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*5 / 60
Dwa wektory s ˛
a równe, je˙zeli jeden z nich mo˙ze zosta´c otrzymany
z drugiego poprzez przesuni ˛ecie równoległe.
Relcja równo´sci wektorów jest relacj ˛
a równowa˙zno´sci:
a
= a
(symetryczna)
a
= b ⇒ b = a
(zwrotna)
Wektory, cd
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*Dwa wektory s ˛
a zgodnie kolinearne, je˙zeli s ˛
a równoległe i maj ˛
a ten
sam zwrot.
Dwa wektory s ˛
a niezgodnie kolinearne, je˙zeli s ˛
a równoległe i maj ˛
a
przeciwne zwroty.
Długo´s´c odcinka
AB
, przedstawiaj ˛
acego wektor
a
, nazywa si ˛e jego
długo´sci ˛
a
|AB| = |a| = kak
wektor nazywa si ˛e zerowym, je´sli jego pocz ˛
atek i koniec si ˛e
Dodawanie wektorów
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*7 / 60
Sum ˛
a wektorów
a
i
b
nazywa si ˛e wektor
a
+ b
, otrymany z tych
wektorów b ˛
ad´z równych im wektorów jak na poni˙zszym rysunku
a +
b
a
b
Dodawanie wektorów przemienne i ł ˛
aczne
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*a
+ b = b + a
b +
a
a +
b
a
b
a
b
(a + b) + c = a + (b + c)
a
b
c
a
+
b
b
+
c
Odejmowanie wektorów
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*9 / 60
Wektor
a
− b
— jest wektorem, suma którego z
b
a
a
− b
b
Nierówno ´s ´c trójk ˛
ata
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*|a + b| 6 |a| + |b|
|a + b + · · · + c| 6 |a| + |b| + · · · + |c|
Mno˙zenie wektora przez liczb ˛e
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*11 / 60
Iloczynem wektora
a
i liczby
λ ∈ R
jest wektor
λa
|λa| = |λ| · |a|
λa
i
a
s ˛
a zgodnie kolinearne, je˙zeli
λ > 0
oraz niezgodnie
kolinearne, gdy
λ < 0
0 · a = 0
λ(µa) = (λµ)a
(λ + µ)a = λa + µa
λ(a + b) = λa + λb
Kombinacje liniowe wektorów
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*Niech dany b ˛edzie układ wektorów
{ a
1
, . . . , a
k
}
oraz wagi (liczby
rzeczywiste)
α
1
, . . . , α
k
Wektor
a
= α
1
a
1
+ · · · + α
k
a
k
Iloczyn skalarny wektorów
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*13 / 60
K ˛
atem mi ˛edzy wektorami
a
i
b
nawyzamy k ˛
at mi ˛edzy wektorami
a
i
b
, które maj ˛
a wspólny pocz ˛
atek
Iloczynem skalarnym wektorów
a
i
b
jest liczba
a
· b
(
ab
):
ab
= |a||b| cos ϕ
(
ϕ
jest k ˛
atem mi ˛edy
a
i
b
)
ab
= ba
a
2
= aa = |a|
2
(λa)b = λ(ab)
je˙zeli
|e| = 1
, to
(λe)(λe) = λµ
Projekcja wektora na prost ˛
a
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*Rzut (projekcja) wektora
a
na prost ˛
a jest wektor
a
¯
, którego
pocz ˛
atkiem jest rzut pocz ˛
atka wektora
a
na prost ˛
a, a ko ´ncem — rzut
ko ´nca wektora
a
na t ˛e prost ˛
a.
ab
= ¯
ab
, gdzie
a
¯
jest rzutem
a
na prost ˛
a, zawieraj ˛
ac ˛
a
b
(a + b)c = ac + bc
Je˙zeli
a
,
b
,
c
s ˛
a trzema niezerowymi wektorami, nie równoległymi
jednocze´snie jednej płaszczy´znie, to
Iloczyn wektorowy
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*15 / 60
Iloczynem wektorowym wektorów
a
i
b
jest wektor
a
× b
:
0
, je˙zeli jeden z wektorów jest zerowy lub wektory s ˛
a równoległe
Wpozostałych przypadkach
a
× b
jest prostopadły do płaszczyzny
a
, b
długo´s´c wektora
a
× b
jest równa polu powierzchni
równoległoboku wyznaczonego przez wektory
a
, b
układ wektorów
a
, b, a × b
jest zorientowany dodatnio
a
× b = −b × a
|a × b| = |a||b| sin θ
, gdzie
θ
jest k ˛
atem mi ˛edzy
a
i
b
(λa) × b = λ(a × b)
Projekcja wektora na płaszczyzn ˛e
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*Rzutem (projekcj ˛
a) wektora
a
na płaszczyzn ˛e jest wektor
a
′
, którego
pocz ˛
atek jest rzutem pocz ˛
atka
a
na płaszczyzn ˛e, a ko ´ncem — rzut
ko ´nca
a
.
Rzutu równych wektorów s ˛
a równe
Rzut sumy wektorów jest sum ˛
a rzutów
Je˙zeli wektor
a
′
jest rzutem
a
na płaszczyzn ˛e, prostopadł ˛
a do
b
, to
a
× b = a
′
× b
(a + b) × c = a × c + b × c
1.
c
= 0
2.
|c| = 1
Niech
a
′
oraz
b
′
b ˛ed ˛
a rzutami odpowiednio
a
oraz
b
na
płaszczyzn ˛e, prostopadł ˛
a do
c
. Wtedy mno˙zenie wektorowe
przez
c
b ˛edzie obrotem o
π
2
(a × b)
2
= |a|
2
|b|
2
− (|a||b| cos θ)
2
, gdzie
θ
jest k ˛
atem mi ˛edzy
Współrz ˛edne wektora wzgl ˛edem bazy
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*17 / 60
Niech dane b ˛ed ˛
a trzy niezerowe, niekomplanarne wektory
e
1
,
e
2
,
e
3
.
Wtedy ka˙zdy wektor
r
mo˙ze zosta´c jednoznacznie przedstawiony jako
suma
r
= r
1
e
1
+ r
2
e
2
+ r
3
e
3
Niech
r
= r
1
′
e
1
+ r
2
′
e
2
+ r
3
′
e
3
b ˛edzie inn ˛
a reprezentacj ˛
a
1.
r
jest równoległy do jednego z wektorów
e
2.
r
jest równoległy do płaszczyzny jednej z pary wektorów
e
3.
r
nie jest równoległy do ˙zadnej z par wektorów
e
Wektory
e
1
,
e
2
,
e
3
nazywane s ˛
a baz ˛
a przestrzeni wektorów.
Liczby
r
1
,
r
2
,
r
3
nazywane s ˛
a współrz˛ednymi wektora
r
w bazie
e
1
,
Działania liniowe na wektorach
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*Niech dana b ˛edzie baza
e
1
,
e
2
,
e
3
.
Niech dane b ˛ed ˛
a dwa wektory:
r
o współrz˛ednych
(r
1
, r
2
, r
3
)
oraz
r
′
o współrz˛ednych
(r
1
′
, r
2
′
, r
3
′
)
.
Wtedy wektor
r
± r
′
b ˛edzie miał współrz˛edne
(r
1
± r
1
′
, r
2
± r
2
′
, r
3
± r
3
′
)
.
Niech dane b ˛ed ˛
a wektor
r
o współrz˛ednych
(r
1
, r
2
, r
3
)
oraz
liczba
λ ∈ R
.
Baza kartezja ´nska
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*19 / 60
Niech dana b ˛edzie baza
i
,
j
,
k
— składaj ˛
aca si ˛e z wektorów
jednosktowych, wzajemnie prostopadłych i zorientowanych dodatnio.
Baza
i
, j, k
nazywa si ˛e baz ˛
a kartezja ´nska
a
= x
a
i
+ y
a
j
+ z
a
k
= (ai)i + (aj)j + (ak)k
Liczby
cos α =
ai
|a|
,
cos β =
aj
|a|
,
cos γ =
ak
|a|
nazywane
s ˛
a cosinusy kierunkowe
Działania metryczne w bazie kartezja ´nskiej
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*Niech dana b ˛edzie kartezja ´nska baza
i
,
j
,
k
. Wtedy
ab
= x
a
x
b
+ y
a
y
b
+ z
a
z
b
a
× b
ma współrz˛edne
y
a
z
a
y
b
z
b
, −
x
a
z
a
x
b
z
b
,
x
a
y
a
x
b
y
b
a
× b =
i
j
k
x
a
y
a
z
a
x
b
y
a
z
b
Zmiana bazy
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*21 / 60
Niech dane b ˛ed ˛
a dwie bazy:
E = { e
1
, e
2
, e
3
}
oraz
F = { f
1
, f
2
, f
3
}
. Wtedy
Wektory
(e
1
, e
2
, e
3
)
maj ˛
a jednoznaczne rozło˙zenie po
bazie
(f
1
, f
2
, f
3
)
:
e
1
= a
11
f
1
+ a
21
f
2
+ a
31
f
3
,
e
2
= a
12
f
1
+ a
22
f
2
+ a
32
f
3
,
e
2
= a
13
f
1
+ a
23
f
2
+ a
33
f
3
.
e
1
e
2
e
3
= f
1
f
2
f
3
A
, gdzie
A
jest macierz ˛
a
kolumn współrz˛ednych wektorów
E
w bazie
F
wektor
a
w bazie
F
b ˛edzie miał współrz˛edne
A
x
a
y
a
z
a
, gdzie
x
a
y
a
z
a
— jego współrz˛edne w
E
.
macierz
A
nazywa si ˛e macierz ˛
a zamiany bazy
Uwaga:
e
1
e
2
e
3
= f
1
f
2
f
3
A ⇐⇒ f
1
f
2
f
3
=
Przekształcenia liniowe
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*Niech dane b ˛ed ˛
a: układ wektorów
E = { e
1
, e
2
, e
3
}
oraz
baza
F = { f
1
, f
2
, f
3
}
,
e
1
e
2
e
3
= f
1
f
2
f
3
A
.
przekwształceniem liniowym nawyza si ˛e odwzorowanie
a
=
x
a
y
a
z
a
7→ x
a
e
1
+ y
a
e
2
+ z
a
e
3
współrz˛edne wektora
a
po przekształceniu b ˛ed ˛
a równe
A
x
a
y
a
z
a
A
nazywa si ˛e macierz ˛
a przekształcenia
wynik przekształcenia zapisuje si ˛e
Aa
Przekształcenia liniowe. Uwagi
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*23 / 60
macierz
A
składa si ˛e z kolumn — współrz˛ednych układu
E
w bazie
F
macierz
A
składa si ˛e z kolumn — współrz˛ednych wektorów bazy
F
po przekształceniu
je˙zeli macierz
A
jest odrwacaln ˛
a, to
E
te˙z jest baz ˛
a oraz
przekształcenie liniowe zgada si ˛e z zamian ˛
a bazy
E → F
przekształcenie
φ : R
n
→ R
n
jest liniowym wtedy i tylko wtedy, gdy
1.
dla dowolnych dwóch wektorów
a
, b
spełniono
φ(a + b) = φ(a) + φ(b)
2.
dla dowolnego wektoru
a
oraz dowolnej liczby rzeczywistej
λ
spełniono
φ(λa) = λφ(a)
Przekształcenia liniowe. Zamiana bazy*
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*Niech dane b ˛ed ˛
a dwie bazy:
F = { f
1
, f
2
, f
3
}
oraz
F
′
= { f
1
′
, f
2
′
, f
3
′
}
,
f
1
′
f
2
′
f
3
′
= f
1
f
2
f
3
T
Niech przekształcenie liniowe b ˛edzie dane w bazie
F
macierz ˛
a
A
Wtedy
Obrót
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*25 / 60
0 h1;0i h0;1i h0;0i h os;sini h sin; osiFigure II.5: Ee t of a rotation through angle . The origin 0 is held xed by the rotation.
R
θ
=
cos θ − sin θ
sin θ
cos θ
Skalowanie
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*S
λ
1
,λ
2
=
λ
1
0
0
λ
2
Mno˙zenie przekształce ´n
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*27 / 60
Niech dane b ˛ed ˛
a dwa przekształcenia liniowe:
A
oraz
B
Iloczynem (superpozycj ˛
a) przekształce ´n
A ◦ B
jest przekształcenie
liniowe
AB(a) = A(Ba)
Macierz ˛
a
A ◦ B
jest macierz
AB
Dlatego zamiast
A ◦ B
b ˛edziemy pisa´c
AB
Macierz ˛
a przekształcenia odwrotnego do
A
jest macierz
A
−1
Twierdzenie 1. Ka˙zde przkształcenie liniowe mo˙zna rozło˙zy´c w iloczyn
obrotu oraz skalowania (o ró˙znych współczynnikach)
Twierdzenie 2. Ka˙zde przkształcenie liniowe sztywne, które nie zmienia
orientacji, jest obrotem
Obrót 3D
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3* 0 u v v 1 v 2 v 3 R ;u (v )Figure II.14: The ve tor v being rotated around u. The ve tor v 1
is v's proje tiononto u. Theve torv
2
isthe omponentof v orthogonalto u. The ve tor v 3 is v 2 rotated 90 Æ
aroundu. Thedashedlinesegmentsinthegure allmeetatrightangles.
Macierz obrotu 3D
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*29 / 60
Obrót dookoła osi wychodz ˛
acej z pocz ˛
atku układu współrz˛ednych
w kierunku
u = (u
1
, u
2
, u
3
)
o k ˛
at
θ
stopni.
(1 − c)u
2
1
+ c
(1 − c)u
1
u
2
− su
3
(1 − c)u
1
u
3
+ su
2
(1 − c)u
1
u
2
+ su
3
(1 − c)u
2
2
+ c
(1 − c)u
2
u
3
− su
1
(1 − c)u
1
u
3
− su
2
(1 − c)u
2
u
3
+ su
1
(1 − c)u
2
3
+ c
,
K ˛
aty Eulera
Przestrze ´n liniowaR
3 (Przypomnienie) Wektory Iloczyn skalarny Iloczyn wektorowy Baza Przekształcenia liniowe K ˛aty Eulera Macierze obrotów Eulera Przestrze ´n afinicznaR
3 Przestrze ´n rzutowaRP
3*30 / 60
Roll z Pit h x Yaw yFigure XII.1: Yaw, pit h, and roll represent rotations around the y-axis, the x-axis and the z-axis. If the axes move with the obje t, then the rotations are performed in the order yaw, then pit h, and nally roll. If the axes are taken as xed, then the rotations are performed in the opposite order: roll, then pit h, then yaw. Rotation dire tions are determined by the righthand rule. The reader is warned that the rotation dire tions for pit h and yaw that are shown in the gure are opposite to ustomary usage in aviation. For us, a positive pit h means the nose dips down and a positive yaw steers to the left. However, aviation onventions are that a positive pit h means the nose moves up, and a positive yaw means turning to the right. It is ustomary for positive roll to mean that the right wing dips, whi h agrees with the our onvention. In aviation onventions, the dire tions of the x and y axes are reversed, with the