Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Programowanie dynamiczne
zaj ˛ecia 1.
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Geometria dla informatyka
wył ˛
acznie obliczenia
wszystko oparte na liczbach, współrz ˛ednych, miarach
programista i/lub u˙zytkownik musi przeło˙zy´c geometri ˛e
na j ˛ezyk komputerowych oblicze ´n a pó´zniej
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Geometria dla informatyka
wył ˛
acznie obliczenia
wszystko oparte na liczbach, współrz ˛ednych, miarach
programista i/lub u˙zytkownik musi przeło˙zy´c geometri ˛e
na j ˛ezyk komputerowych oblicze ´n a pó´zniej
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Geometria dla informatyka
wył ˛
acznie obliczenia
wszystko oparte na liczbach, współrz ˛ednych, miarach
programista i/lub u˙zytkownik musi przeło˙zy´c geometri ˛e
na j ˛ezyk komputerowych oblicze ´n a pó´zniej
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Podstawowe poj ˛ecia
punkt
prosta, półprosta, odcinek
trójk ˛
at, wielok ˛
at
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Podstawowe poj ˛ecia
punkt
prosta, półprosta, odcinek
trójk ˛
at, wielok ˛
at
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Podstawowe poj ˛ecia
punkt
prosta, półprosta, odcinek
trójk ˛
at, wielok ˛
at
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Podstawowe poj ˛ecia
punkt
prosta, półprosta, odcinek
trójk ˛
at, wielok ˛
at
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Odległo´s´c
(x
1
,
y
1
)
(x
2
,
y
2
)
x
2
− x
1
y
2
− y
1
q
(x
2
−
x
1
)
2
+
(y
2
−
y
1
)
2
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Iloczyn skalarny
(x
0
,
y
0
)
(x
2
,
y
2
)
(x
1
,
y
1
)
d1
d
2
(x
1
− x
0) · (x
2
− x
0) + (y
1
− y
0) · (y
2
− y
0) =
=
d
1
· d
2
· cos α
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Iloczyn wektorowy
(x
0
,
y
0
)
(x
2
,
y
2
)
(x
1
,
y
1
)
d1
d
2
(x
1
− x
0) · (y
2
− y
0) − (x
2
− x
0) · (y
1
− y
0) =
=
d
1
· d
2
· sin α
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Równanie prostej
Jest kilka charakteryzacji prostych:
A · x + B · y + C = 0
y = a · x + b
(x
0
+
t · x
d
,
y
0
+
t · y
d
)
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Równanie prostej
Jest kilka charakteryzacji prostych:
A · x + B · y + C = 0
y = a · x + b
(x
0
+
t · x
d
,
y
0
+
t · y
d
)
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Równanie prostej
Jest kilka charakteryzacji prostych:
A · x + B · y + C = 0
y = a · x + b
(x
0
+
t · x
d
,
y
0
+
t · y
d
)
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Równanie prostej
Jest kilka charakteryzacji prostych:
A · x + B · y + C = 0
y = a · x + b
(x
0
+
t · x
d
,
y
0
+
t · y
d
)
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Trójk ˛
at
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Wielok ˛
at
Pomysł
dzieli´c na trójk ˛
aty
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Wielok ˛
at
Pomysł
dzieli´c na trójk ˛
aty
p
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Wielok ˛
at
Pomysł
dzieli´c na trójk ˛
aty
p
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Opis problemu
punkty na płaszczy´znie
sznurek wokół gwo´zdzi
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Opis problemu
punkty na płaszczy´znie
sznurek wokół gwo´zdzi
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Rozwi ˛
azanie brutalne
Dla ka˙zdego odcinka, sprawdzamy czy wszystkie pozostałe
punkty le˙z ˛
a po tej samej stronie. O(n
3
).
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Rozwi ˛
azanie optymalne
Otoczka dolna i górna
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Rozwi ˛
azanie optymalne
Otoczka dolna i górna
dzielimy problem na dwoje
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Rozwi ˛
azanie optymalne
Otoczka dolna i górna
dzielimy problem na dwoje
Sortowanie punktów od lewej do prawej.
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Jak to działa?
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Podsumowanie
druga połówka – analogicznie
poprawno´s´c
zło˙zono´s´c – O(n log n)
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Podsumowanie
druga połówka – analogicznie
poprawno´s´c
zło˙zono´s´c – O(n log n)
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka
Podsumowanie
druga połówka – analogicznie
poprawno´s´c
zło˙zono´s´c – O(n log n)
Programowanie dynamiczne Podstawy Pole powierzchni Wypukła otoczka