2D & 3D Convex Hulls, Distance Maps and Collision Detection

Page 1

Υπολογιστική Γεωμετρία & 3Δ Μοντελοποίηση Μάριος-Φώτιος Μπίκος ΑΜ: 7323 Πανεπιστήμιο Πατρών 2012-2013 Page | 1


ΑΠΑΛΛΑΚΣΗΚΖ ΔΡΓΑ΢ΗΑ 1

8o Εξάμηνο

Τπνινγηζηηθή Γεσκεηξία & 3Γ Μνληεινπνίεζε 2012-2013

MODEL3D_2

Δηζαγσγή Ζ εξγαζία απηή αλαπηύρζεθε ζηα πιαίζηα ηνπ καζήκαηνο Τπνινγηζηηθή Γεσκεηξία & 3Γ Μνληεινπνίεζε ηνπ ηκήκαηνο Ζιεθηξνιόγσλ Μεραληθώλ & Σερλνινγίαο Τπνινγηζηώλ ηελ πεξίνδν 2012-2013. ΢ηόρνο ήηαλ ε αλάπηπμε αιγνξίζκσλ γηα ηελ θαηαλόεζε ελλνηώλ όπσο ην θπξηό πεξίβιεκα θαη ν ράξηεο απνζηάζεσλ ζε 2 θαη 3 δηαζηάζεηο θαη ε αλίρλεπζε ζύγθξνπζεο ζε 3 δηαζηάζεηο. Σα κνληέια πνπ κνπ αλαηέζεθαλ ήηαλ ηα Model_2d_test.poly θαη 3D_2.obj αξρεία.

Πεξηβάιινλ αλάπηπμεο ηεο εθαξκνγήο: Γιώζζα πξνγξακκαηηζκνύ θαη εξγαιεία αλάπηπμεο Γηα ηελ απαιιαθηηθή απηή εξγαζία ρξεζηκνπνηήζεθαλ νη παξαθάησ βηβιηνζήθεο ζρεηηθά κε ηελ ππνινγηζηηθή γεσκεηξία:  Geolib (http://www.geolib.co.uk/)  MathGeoLib (http://clb.demon.fi/MathGeoLib/nightly/) Page | 2


Ζ 1ε βηβιηνζήθε ρξεζηκνπνηήζεθε ζην 1ν εξώηεκα ηεο εξγαζίαο όπνπ ην κνληέιν καο ήηαλ ζηηο 2 δηαζηάζεηο, ελώ ζην 2ν θαη 3ν εξώηεκα ρξεζηκνπνηήζακε ηελ βηβιηνζήθε MathGeoLib έηζη ώζηε λα εθκεηαιιεπηνύκε ηηο κεζόδνπο πνπ δίλνληαη γηα ηηο 3 δηαζηάζεηο θαζώο θαη γηα λα νξίζνπκε ζηνηρεία ζηηο 3 δηαζηάζεηο όπσο ζθαίξεο,πνιύεδξα,ζεκεία 3 δηαζηάζεσλ θιπ. Αμίδεη λα αλαθεξζεί όηη παξά ην γεγνλόο όηη ε MathGeoLib πξνζθέξεη έηνηκεο κεζόδνπο γηα ηελ εύξεζε θπξηνύ πεξηβιήκαηνο 3 δηαζηάζεσλ, ΓΔΝ πήξακε ηίπνηα έηνηκν θαη πινπνηήζακε ηνπο αιγνξίζκνπο από ηελ αξρή. Ζ εξγαζία πινπνηήζεθε κε ρξήζε OpenGL/C++ ζην Visual Studio 2012.Κύξηνο ζηόρνο κνπ ήηαλ ε ιεηηνπξγηθόηεηα ηνπ project θαη ε αιιειεπίδξαζε κε ηνλ ρξήζηε ώζηε λα αληηιεθζεί ηηο έλλνηεο πνπ δεηνύληαη από ηα εξσηήκαηα.Αθνύ ζπλέβε απηό πξνζπάζεζα λα βειηηώζσ νξηζκέλα ζεκεία θαη λα απεηθνλίζσ ζπγθεθξηκέλεο πηπρέο ησλ πξνβιεκάησλ πνπ επηιύζεθαλ. Σν αξρηθό πιάλν δελ πεξηειάκβαλε ηελ δεκηνπξγία animation θαη θίλεζεο ησλ αληηθεηκέλσλ, σζηόζν γηα λα θαηαλνήζεη θαιύηεξα ν ρξήζηεο έλα αληηθείκελν ζην ρώξν ησλ 3 δηαζηάζεσλ, θάηη ηέηνην θξίζεθε ηειηθά απαξαίηεην. Υξεζηκνπνίεζα πνιιά πξάγκαηα ηα νπνία είρα πινπνηήζεη ζηηο πξναηξεηηθέο εξγαζίεο ηνπ καζήκαηνο θαηά ηε δηάξθεηα ηνπ εμακήλνπ θαη θάλεθαλ ηδηαίηεξα ρξήζηκεο.

ΔΡΩΣΖΜΑ 1Ο Τπνινγίζηε ην θπξηό πεξίβιεµα ηνπ Model_2D. ΢ηε ζπλέρεηα ππνινγίζηε ην ράξηε απνζηάζεσλ ηνπ θπξηνύ πεξηβιήµαηνο από ην ππνθείµελν µνληέιν θαη απνζεθεύζηε ην ζε θαηάιιειε δνµή. Βξείηε έλα ηξόπν λα απεηθνλίζεηε ην ράξηε απνζηάζεσλ (π.ρ. ρξσµαηηθά ή γεσµεηξηθά). Γηα ην παξαπάλσ εξώηεκα εξγαζηήθα σο εμήο: Αξρηθά, ήηαλ απαξαίηεην λα δηαβάζνπκε ηα ζεκεία πνπ ζπλζέηνπλ ην αξρηθό καο κνληέιν.Μέζα από ηελ θαηάιιειε δηαδηθαζία πνπ ρξεζηκνπνηεί ε C++ δηαβάζακε ηα ζεκεία από ην αξρείν model_2d_test.poly θαη ηα βάιακε ζε έλα C2DPointSet. Έπεηηα, εύθνια δεκηνπξγήζακε ην αληίζηνηρν πνιύγσλν από ηα ζεκεία απηά.

Page | 3


Με πράσινο τρώμα απεικονίζεται το πολύγωνο μας

Έπεηηα ππνιόγηζα ην θπξηό πεξίβιεκα εύθνια κέζα από ηελ αληίζηνηρε κέζνδν ηεο βηβιηνζήθεο καο, κηαο θαη όπσο καο είρε επηζεκάλεη ν θ.Μνπζηάθαο ζηηο 2 δηαζηάζεηο κπνξνύκε λα πάξνπκε ακέζσο ηελ κέζνδν απηή, θαη ηελ είρακε πινπνηήζεη θαη ζηηο πξναηξεηηθέο εξγαζίεο.

Με θόθθηλν ρξώκα απεηθνλίδεηαη ην θπξηό πεξίβιεκα ηνπ πνιπγώλνπ καο

Σν επόκελν βήκα πξνθεηκέλνπ λα θηάζνπκε ζηελ δεκηνπξγία ηνπ ράξηε απνζηάζεσλ ήηαλ λα βξνύκε 2 ζεηξέο από επζύγξακκα ηκήκαηα.Σα επζύγξακκα ηκήκαηα ηνπ πνιπγώλνπ πνπ είλαη κόλν κέξε ηνπ Page | 4


πνιπγώλνπ θαη όρη ηνπ convex hull,δειαδή νπζηαζηηθά όια ηα επζύγξακκα ηκήκαηα ζην εζσηεξηθό ηνπ θπξηνύ πεξηβιήκαηνο θαη όια ηα επζύγξακκα ηκήκαηα ηα νπνία είλαη κέξε ηνπ θπξηνύ πεξηβιήκαηνο αιιά δελ είλαη επζ. Σκήκαηα ηνπ πνιπγώλνπ. Γηα λα γίλεη όιν απηό ρξεηάζηεθε λα ζπάζνπκε ην πνιύγσλν ζε επζ. ηκήκαηα, αιιά θαη λα ζπάζνπκε ην θπξηό πεξίβιεκα ζε επζ. Σκήκαηα.Δπεηδή κάιηζηα ε βηβιηνζήθε δελ καο επηηξέπεη λα δνύκε αλ 2 επζ. ηκήκαηα είλαη ίδηα, ρξεηάζηεθε λα ζπγθξίλνπκε ηα επζ. ηκήκαηα κε βάζε ην αξρηθό θαη ηειηθό ηνπο ζεκείν.Γειαδή ελα επζ. ηκήκα είλαη ίδην κε έλα άιιν αλ ην αξρηθό ζεκείν ηνπ πξώηνπ είλαη ίδην κε ην αξρηθό ηνπ δεύηεξνπ θαη νκνίσο ηα ηειηθά ζεκεία, είηε αλ ην ηειηθό ζεκείν ηνπ πξώηνπ ηκήκαηνο είλαη ίδην κε ην αξρηθό ζεκείν ηνπ δεύηεξνπ ηκήκαηνο θαη ην αξρηθό ζεκείν ηνπ πξώηνπ ηκήκαηνο είλαη ίδην κε ην ηειηθό ηνπ δεύηεξνπ. Με απηή ηε ινγηθή βξήθακε ηηο 2 ζεηξέο επζύγξακκσλ ηκεκάησλ, πνπ ζα καο βνεζήζνπλ ζηελ επίιπζε ηνπ πξνβιήκαηνο, ζπγθξίλνληαο θάζε επζ. ηκήκα ηνπ πνιπγώλνπ κε όια ηα επζ. ηκήκαηα ηνπ θπξηνύ πεξηβιήκαηνο θαη νκνίσο γηα ην 2ν ζεη.

Με κπιε απεηθνλίδνληαη ηα επζ. ηκήκαηα πνπ βξίζθνληαη ζην θπξηό πεξίβιεκα αιιά δελ είλαη κέξε ηνπ πνιπγώλνπ.

Page | 5


Με ρξπζό ρξώκα απεηθνλίδνληαη ηα επζύγξακκα ηκήκαηα πνπ είλαη κέξε ηνπ πνιπγώλνπ καο, αιιά δελ είλαη κέξε ηνπ θπξηνύ πεξηβιήκαηνο ηνπ πνιπγώλνπ καο

Δδώ απεηθνλίδεηαη θαιύηεξα ην κνληέιν καο.Βιέπεηε κε κπιέ ρξώκα ηα επζ. ηκήκαηα ηνπ θπξηνύ πεξηβιήκαηνο πνπ δελ είλαη κέξνο ηνπ πνιπγώλνπ,κε πξάζηλν ρξώκα ηα εζσηεξηθά επζ. ηκήκαηα θαη κε ιεπθό ρξώκα ηα επζ. ηκήκαηα πνπ αλήθνπλ θαη ζην θπξηό πεξίβιεκα θαη ζην πνιύγσλν καο.

Page | 6


Από εθεί θαη έπεηηα πξνθεηκέλνπ λα βξνύκε ην ράξηε απνζηάζεσλ θάλνπκε ηα εμήο: Παίξλνπκε θάζε επζ. ηκήκα πνπ είλαη κέξνο ηνπ θπξηνύ πεξηβιήκαηνο, αιιά όρη ηνπ πνιπγώλνπ καο θαη ην ζπάκε ζε δηαδνρηθά επζύγξακκα ηκήκαηα κε πνιύ κηθξό βήκα,δειαδή ζε θάζε βήκα πξνρσξάκε πρ ζην 0.02% ηνπ κήθνπο ηνπ επζ. ηκήκαηνο θαη από εθεί νξίδνπκε επζ. ηκήκα κε αξρή ην ζεκείν εθείλν θαη ηέινο ην ηειηθό ζεκείν ηνπ επζ. ηκήκαηνο. Έπεηηα ζηξέθνπκε ην θάζε ηκήκα πνπ ζπάζακε πξνεγνπκέλσο θαηά 90 κνίξεο έηζη ώζηε λα θνηηάλε πξνο ην αληηθέκελν καο.Σηο γξακκέο απηέο ζα ηηο νλνκάδνπκε από εδώ θαη ζην εμήο Αθηίλεο ή Rays.

\ Δδώ κε γαιάδην ρξώκα απεηθνλίδνληαη νη «αθηίλεο» πνπ ξίρλνπλ ηα επζ. ηκήκαηα πξνο ην αληηθείκελν καο.

Όπσο θαίλεηαη θαη ζηελ εηθόλα καο, ε θάζε αθηίλα δελ είλαη ην ίδην κήθνο κε ηε δηπιαλή ηεο.Μάιηζηα θάπνηεο είλαη ηόζν κηθξέο πνπ δελ ηέκλνπλ θαλ ην αληηθείκελν καο.Οπόηε ζα νξίζνπκε ην κήθνο θάζε αθηίλαο λα είλαη αξθεηά κεγάιν ώζηε λα ηέκλεη ην αληηθείκελν καο.Γεληθά γλσξίδνπκε όηη ηα αληηθείκελα καο ζα βξίζθνληαη ζηα όξηα ηνπ αξρηθνύ νξζνγσλίνπ καο δειαδή από (-50,50) ζε x,y ζπληεηαγκέλεο. Αξα πρ εδώ ζα έπξεπε λα βάινπκε κήθνο 100 ώζηε λα είκαζηε ζίγνπξνη. ΢ηε ζπλέρεηα ειέγρνπκε γηα θάζε ηέηνηα αθηίλα, όια ηα εζσηεξηθά επζ. ηκήκαηα δειαδή όια επζ. ηκήκαηα πνπ αλήθνπλ ζην πνιύγσλν καο θαη όρη ζην θπξηό πεξίβιεκα θαη βξίζθνπκε ζεκεία ηνκήο.Όπσο γίλεηαη θαηαλνεηό θάηη ηέηνην ζα επηθέξεη πνιιά ζεκεία ηνκήο θάζε αθηίλαο.Ωζηόζν εκείο κέζα από θαηάιιεια δηακνξθσκέλν θώδηθα πήξακε σο ζεκείν ηνκήο απηό πνπ βξίζθεηαη πην θνληά ζην αξρηθό ζεκείν ηεο αθηίλαο καο θαη ην νπνίν είλαη ην ζσζηό.

Page | 7


Σην ζρήκα θαίλνληαη ηα νκνηόκνξθα rays κε γαιάδην ρξώκα(κε κήθνο όρη 100 αιιά ιίγν κηθξόηεξν γηα ιόγνπο εκθάληζεο) θαη κε ιεπθό ρξώκα ηα ζσζηά ζεκεία ηνκήο κε ην αληηθείκελν καο.

΢ην παξαπάλσ ζρήκα βιέπνπκε σζηόζν όηη παξά ην γεγνλόο όηη βξήθακε ηα ζεκεία ηνκήο κε ην αληηθείκελν νη αθηίλεο ζπλερίδνπλ θαη κεηά ηελ πξόζθξνπζε.Οπόηε εύθνια κεηαζρεκαηίδνπκε ηηο αθηίλεο ώζηε ζαλ ηειηθό ζεκείν λα έρνπλ ηα ζεκεία ηνκήο.

Τν ζρήκα καο κε ην ζσζηό κήθνο αθηίλσλ κε ηειηθό ζεκείν ην ζεκείν ηεο αληίζηνηρεο ηνκήο

Όπσο θαίλεηαη θαη από ηα ζρήκαηα καο σο ηώξα, ε αθξίβεηα πνπ πήξακε γηα λα ζρεδηάζνπκε ηηο αθηίλεο δελ επαξθεί γηα ηε δεκηνπξγία ηνπ ράξηε απνζηάζεσλ.Οπόηε ζα πξέπεη λα πάξνπκε πνιύ κεγαιύηεξε αθξίβεηα δειαδή πνιύ πεξηζζόηεξεο αθηίλεο λα θεύγνπλ από θάζε κπιε πιεπξά. Απηό ην θαηαθέξλνπκε πνιύ εύθνια γπξίδνληαο πίζσ ζην θνκκάηη θώδηθα πνπ πήξακε γηα ηα δηαδνρηθά επζ. ηκήκαηα θαη παίξλνληαο κηθξόηεξν βήκα. Page | 8


Τν ζρήκα κε πεξηζζόηεξεο αθηίλεο από πξηλ

΢ην ηειηθό ζηάδην θαη πξνθεηκέλνπ λα πεηύρνπκε ηνλ ζσζηό ράξηε απνζηάζεσλ ρξσκαηηθά, ζα πάξνπκε πνιύ κεγάιε αθξίβεηα.Έπεηηα ζα θάλνπκε ην εμήο: Θα ειέγμνπκε ην ζύλνιν όισλ ησλ αθηίλσλ θαη ζα βξνύκε απηή ηελ αθηίλα κε ην κεγαιύηεξν κήθνο, θαζώο θαη απηή κε ην κηθξόηεξν κήθνο(πνπ πξνθαλώο ζα είλαη πνιύ θνληά ζην 0) Δπνκέλσο ζα δσγξαθίζνπκε ηηο αθηίλεο έηζη ώζηε όζεο αθηίλεο είλαη πην θνληά ζην κέγηζην κήθνο αθηίλαο λα είλαη πην θόθθηλεο θαη όζν ην κήθνο αθηίλαο ηείλεη πξνο ην 0 ηόζν λα γίλεηαη θαη πην ιεπθή ε αθηίλα.Γηα παξάδεηγκα αλ κία αθηίλα έρεη κήθνο 5 θαη ην κέγηζην κήθνο αθηίλαο είλαη 10, ηόηε πξνθαλώο ε αθηίλα καο ζα είλαη κία κίμε κε 50% θόθθηλν θαη 50% ιεπθό, δειαδή ξνδ. Έηζη ζρεκαηίδνπκε έλαλ ράξηε απνζηάζεσλ πνιπγώλνπ 2 δηαζηάζεσλ!

Ο ράξηεο απνζηάζεσλ ηνπ κνληέινπ καο.Όζν πην θόθθηλν ην ρξώκα ηόζν πην πνιύ απέρεη ην θπξηό πεξίβιεκα από ην αληηθείκελν καο θαη όζν πην ιεπθό ηόζν θνληά είλαη ην αληηθείκελν κε ην πνιύγσλν καο.

Page | 9


Tέινο, αμίδεη λα αλαθεξζεί όηη κε ην πάηεκα ησλ πιήθηξσλ I & O ν ρξήζηεο κπνξεί λα θάλεη zoom in θαη zoom out αληίζηνηρα γηα λα δεη θαιύηεξα ην αληηθείκελν θαη λα παηήζεη SPACEBAR γηα λα πάξεη ην αληηθείκελν ηελ αξρηθή ηνπ ζέζε

ΔΡΩΣΖΜΑ 2Ο Τπνινγίζηε, πινπνηώληαο ηνλ απμεηηθό αιγόξηζκν, ην θπξηό πεξίβιεκα ηνπ Model_3D. ΢ηε ζπλέρεηα ππνινγίζηε ην ράξηε απνζηάζεσλ ηνπ θπξηνύ πεξηβιήκαηνο από ην ππνθείκελν κνληέιν θαη απνζεθεύζηε ην ζε θαηιάιιειε δνκή. Βξείηε έλα ηξόπν λα απεηθνλίζηε ην ράξηε απνζηάζεσλ (π.ρ. ρξσκαηηθά ή γεσκεηξηθά). Σν εξώηεκα απηό θξίζεθε πνιύ πην απαηηεηηθό από ην πξνεγνύκελν.΢πγθεθξηκέλα ζπλαληήζακε αξθεηά κεγάιε δπζθνιία ζηελ πινπνίεζε ηνπ απμεηηθνύ αιγνξίζκνπ ηνπ θπξηνύ πεξηβιήκαηνο ζηηο 3 δηαζηάζεηο, όρη κόλν δηόηη ήηαλ ην 1ν πξόβιεκα πνπ ιύλακε ζηηο 3 δηαζηάζεηο, αιια θαη γηαηί είλαη αξθεηά δπζθνιόηεξν θάπνηνο λα θαηαλνήζεη νξηζκέλεο έλλνηεο ζε επίπεδν 3 δηαζηάζεσλ.

Γηα ην πξόβιεκα απηό ρξεηάζηεθε λα εηζάγνπκε θαη λα ρξεζηκνπνηήζνπκε ηελ βηβιηνζήθε MathGeoLib πνπ βξήθακε ζην δηαδίθηπν ώζηε λα εθκεηαιιεπηνύκε νξηζκέλεο δπλαηόηεηεο πνπ δελ καο εμαζθάιηδε ε ρξήζε ηεο GeoLib,ε νπνία ζηνλ ηξηζδηάζηαην ρώξν παξέρεη κόλν ζεκεία 3 δηαζηάζεσλ θαη ηίπνηα άιιν, ζε αληίζεζε κε ηελ MathGeoLib πνπ παξέρεη ηα εξγαιεία όπσο ζθαίξεο,πνιύεδξα θιπ θαζώο θαη θαηάιιειεο κεζόδνπο γηα λα πινπνηήζνπκε ηνλ απμεηηθό αιγόξηζκν θπξηνύ πεξηβιήκαηνο. Ωζηόζν πξέπεη λα ηνλίζνπκε όηη δελ πήξακε ηίπνηα έηνηκν από ηε βηβιηνζήθε γηα ηελ πινπνίεζε ηνπ απμεηηθνύ αιγνξίζκνπ. Δπίζεο γηα ηελ είζνδν ηνπ αξρείνπ κνληέινπ δελ πξόιαβα λα πινπνίεζσ ηηο θαηάιιειεο εληνιέο ώζηε νξηζκέλνη ραξαθηήξεο ζηελ αξρή θαη ζηε κέζε ηνπ αξρείνπ λα απνθεύγνληαη(απηνί πνπ απνξξένπλ από ην Blender).ΔΠΟΜΔΝΩ΢ ΑΝ Ο ΥΡΖ΢ΣΖ΢ ΘΔΛΔΗ ΝΑ ΦΟΡΣΩ΢ΔΗ ΣΟ ΜΟΝΣΔΛΟ ΣΟΤ,ΣΟΣΔ ΑΤΣΟ ΘΑ ΠΡΔΠΔΗ ΝΑ ΑΠΑΡΣΗΕΔΣΑΗ ΑΠΟ ζπληεηαγκέλεο κε v κπξνζηά θαη facets κε f κπξνζηά!!! Δπηπιένλ, επεηδή έρνπκε λα θάλνπκε κε 3 δηαζηάζεηο πινπνηήζεθε έλα menu κε ιεηηνπξγίεο πιεθηξνινγίνπ ώζηε λα κπνξέζνπκε λα ρεηξηζηνύκε ην κνληέιν καο θαη λα δνύκε θάζε λέα πινπνίεζε(π.ρ θπξηό πεξίβιεκα κε facets,ράξηε απνζηάζεσλ θιπ) παηώληαο ην αληίζηνηρν πιήθηξν. Σν MENU καο έρεη σο εμήο: F1: Γείρλεη ην αληηθείκελν κε ηα facets δωγξαθηζκέλα ζην εζωηεξηθό ή κόλν ωο γξακκέο κε κπιε ρξώκα F2: Γείρλεη ην θπξηό πεξίβιεκα ηνπ αληηθεηκέλνπ καο κε θίηξηλν ρξώκα ωο δωγξαθηζκέλα ηξίγωλα F3: Γείρλεη ην θπξηό πεξίβιεκα ηνπ αληηθεηκέλνπ καο κε θίηξηλν ρξώκα ωο γξακκέο F4: Γείρλεη ηνλ ράξηε απνζηάζεωλ(ιεπθό-θόθθηλν ρξώκα) Page | 10


F5: Γείρλεη ην ΑΑΒΒ κε θόθθηλν ρξώκα(ζε εηδηθή κνξθή γηα λα είλαη εκθαλέο-ρωξηζκέλν ζε ηξίγωλα) F6: Δκθαλίδεη ηνπο xyz άμνλεο κε ιεπθό ρξώκα

Button I : Zoom In Button O: Zoom Out Buttons E,D,S,F,R,T: Πεξηζηξέθεη ηε ζέα ηνπ κνληέινπ Buttons Y,G,H,J,K,L: Κίλεζε ηεο ζθαίξαο ηνπ 3νπ εξωηήκαηνο SPACEBAR: Όια ζηελ αξρηθή θαηάζηαζε Γηα ηελ επίιπζε ηνπ πξνβιήκαηνο εξγαζηήθακε σο εμήο: Αξρηθά κέζα αλαιύνληαο ην αξρείν ηνπ κνληέινπ καο βξήθακε ηα ζεκεία ηνπ αληηθεηκέλνπ καο(3D_2) θαζώο θαη ηα facets ηνπ δειαδή ηα ηξίγσλα από ηα νπνία απνηειείηαη.

Τα ζεκεία ηνπ κνληέινπ καο κε βάζε ην αξρείν 3D_2.obj\z

Page | 11


s Το αντικείμενο μας με ζωγραυισμένα τα facets τοσ(ή meshes)

΢ηε ζπλέρεηα πξνρσξήζακε ζηελ πινπνίεζε ηνπ απμεηηθνύ αιγνξίζκνπ γλσζηνύ θαη από ην κάζεκα καο. Γηα λα γίλεη απηό αξρηθά ζρεδηάζακε έλα ηεηξάεδξν πνπ ηεξεί ηηο αξρηθέο πξνϋπνζέζεηο πνπ ζέηεη ν αιγόξηζκνο καο θαη ζηε ζπλέρεηα γηα θάζε λέν ζεκείν ειέγμακε αλ ην ζεκείν βξίζθεηαη ζην εζσηεξηθό ηνπ ηεηξαέδξνπ ή ζην εμσηεξηθό. Αλ ην ζεκείν βξηζθόηαλ ζην εζσηεξηθό, ηόηε πεγαίλακε ζην επόκελν ζεκείν, δηαθνξεηηθά εθηεινύζακε κηα δηαθνξεηηθή κεζνδνινγία. ΢πγθεθξηκέλα βξίζθακε γηα ην ζεκείν απηό, πνηα είλαη ηα facets ηνπ πνιπέδξνπ καο ηα νπνία βιέπεη ην ζεκείν.Γηα λα ην πεηύρνπκε απηό κεηαηξέςακε θάζε facet ηνπ κνληέινπ ζε plane θαη ειέγμακε αλ ην ζεκείν βξίζθεηαη ζην επάλσ κέξνο ηνπ plane. Να αλαθέξνπκε όηη ην πνιύεδξν καο θάζε ζηηγκή θξνληίδακε έηζη ώζηε όια ηα facets λα έρνπλ ηε λόξκα ηνπο πξνο ηα έμσ από ην πνιύεδξν, έηζη είρακε νπζηαζηηθά κηα θνξά ζε θάζε facet αληίζηξνθε ηεο θνξάο ηνπ ξνινγηνύ. Αθνύ ειέγρακε όια ηα facets θαη βξίζθακε ηα νξαηά από ην ζεκείν καο, έπεηηα ρξεηάζηεθε λα βξνύκε ηνλ νξίδνληα πνπ δελ είλαη ηίπνηα άιιν από επζύγξακκα ηκήκαηα. Γηα λα ηα βξνύκε, δηαζρίζακε όιεο ηηο πιεπξέο ησλ νξαηώλ facets θαη όηαλ θάπνηα πιεπξά εκθαληδόηαλ κόλν 1 θνξά θαη δελ εκθαληδόηαλ ε αληίζεηε ηεο θαζόινπ, ηόηε ε πιεπξά απηή πξνθαλώο άλεθε ζηνλ νξίδνληα. Page | 12


Παίξλνληαο ηα ζεκεία ησλ πιεπξώλ απηώλ, δειαδή 2 ζεκεία αλά πιεπξά θαη ην ζεκείν ην νπνίν δηεξεπλνύκε, δεκηνπξγνύκε λέν facet κε ηα 3 απηά ζεκεία. Σν ίδην θάλνπκε γηα όιν ηνλ νξίδνληα θαη ζην ηέινο δηαγξάθνπκε ηα νξαηά facets. Δπίζεο εθηεινύκε ηελ θαηάιιειε κέζνδν έηζη ώζηε ην πνιύεδξν καο λα νξίδεηαη ζηελ δνκή έηζη ώζηε νη λόξκεο ησλ facets λα βξίζθνληαη πξνο ηα έμσ από ην πνιύεδξν. ΢πλερίδνπκε επαλαιεπηηθά θαη έηζη θαηαζθεπάδνπκε ην ηειηθό πνιύεδξν ην νπνίν είλαη θαη ην Convex Hull 3D.

Τν 3Γ θπξηό πεξίβιεκα κε κπιέ ρξώκα θαη ην κνληέιν καο πνπ απνηειείηαη από πξάζηλα ζεκεία

Σν επόκελν βήκα ήηαλ θαη απηό πνπ καο δπζθόιεςε πεξηζζόηεξν από όια ηα εξσηήκαηα.Ζ αξρηθή ηδέα γηα ηελ πινπνίεζε ηνπ ράξηε απνζηάζεσλ ήηαλ ε εμήο: Να πάξνπκε γηα θάζε ζεκείν θάζε έδξαο ηνπ θπξηνύ πνιπέδξνπ καο(ή ηνπιάρηζηνλ γηα πνιιά ζεκεία θάζε έδξαο) αθηίλεο πξνο ην εζσηεξηθό ηνπ πνιπέδξνπ δειαδή πξνο ην κνληέιν καο. Όπσο αθξηβώο θαη ζηε 2D πινπνίεζε έπεηηα ζα βξίζθακε ηα ζεκεία ηνκήο θαη ζα ρξσκαηίδακε κε βάζε ηα κήθε ησλ αθηίλσλ. Ωζηόζν παξά ηελ πξνζπάζεηα απηή δελ ππήξμε απνηέιεζκα θαη επνκέλσο βαζηζηήθακε ζε κία πξνζέγγηζε ηεο παξαπάλσ ιύζεο. Πην ζπγθεθξηκέλα εξγαζηήθακε σο εμήο: Αληί λα πάξνπκε πνιιέο αθηίλεο γηα θάζε έδξα ηνπ θπξηνύ πνιύεδξνύ καο, ζα πάξνπκε κόλν 1 αθηίλα θαη απηή από ην βαξύθεληξν ηεο έδξαο καο.Απηή είλαη κηα πξνζέγγηζε θαζώο δελ θαηάθεξα λα πινπνηήζσ ηελ ίδηα κέζνδν κε πνιιέο αθηίλεο λα βγαίλνπλ από ηελ έδξα. Έηζη, γηα θάζε κνλαδηθή αθηίλα γηα θάζε έδξα πνπ πήξακε πξνο ην εζσηεξηθό ηνπ θπξηνύ πνιύεδξνπ ειέγρνπκε δηαδνρηθά όια ηα facets ηνπ αληηθεηκέλνπ καο θαη βξίζθνπκε ηα ζεκεία ηνκήο. Page | 13


Όπσο εξγαζηήθακε θαη ζην 1ν εξώηεκα, ζα θξαηήζνπκε ην ζεκείν ηνκήο πνπ βξίζθεηαη πην θνληά ζην αξρηθό ζεκείν ηεο αθηίλαο δειαδή ην βαξύθεληξν θάζε έδξαο. Με βάζε απηή ηελ αθηίλα θαη ην ηειηθό κήθνο ηεο ζρεδηάδνπκε θαη ηελ αληίζηνηρε έδξα κε ην ρξώκα απηό. Ζ ρξσκαηνινγία είλαη ίδηα κε ην 1ν εξώηεκα. Σν θόθθηλν αληηπξνζσπεύεη ηελ κέγηζηε απόζηαζε θαη ην ιεπθό ηελ ειάρηζηε. Δπίζεο πινπνίεζακε ην ίδην εξώηεκα αιιά ρξσκαηίζακε θαη κόλν ηηο αθηίλεο γηα λα δνύκε ην απνηέιεζκα, όπσο θαίλεηαη θαη ζηηο θσηνγξαθίεο.

Ο ράξηεο απνζηάζεσλ ζε 3D.Όζν πην θόθθηλν ηόζν κεγαιύηεξε ε απόζηαζε από ην Convex Hull 3D πξνο ην αληηθείκελν(πξνζέγγηζε)

Page | 14


Ο ράξηεο απνζηάζεσλ ζε 3D.Όζν πην θόθθηλν ηόζν κεγαιύηεξε ε απόζηαζε από ην Convex Hull 3D πξνο ην αληηθείκελν(πξνζέγγηζε) – Από κία άιιε όςε

To κνληέιν κε ην ράξηε απνζηάζεσλ ζρεδηαζκέλν κε αθηίλεο ηνπ αληίζηνηρνπ ρξώκαηνο

Page | 15


ΔΡΩΣΖΜΑ 3Ο Τινπνηήζηε αιγόξηζµν αλίρλεπζεο ζύγθξνπζεο µίαο θηλνύµελεο ζθαίξαο αθηίλαο R µε ην Model_3D ρξεζηµνπνηώληαο µόλν ην θπξηό πεξίβιεµα θαη ην ράξηε απνζηάζεσλ (όρη ην ίδην ην Model_3D) ΢ην ζπγθεθξηκέλν εξώηεκα δελ θαηαθέξακε λα πινπνηήζνπκε επαξθή ιύζε όζνλ αθνξά ηελ αλίρλεπζε ζύγθξνπζεο κε βάζε ην ράξηε απνζηάζεσλ πνπ δεκηνπξγήζακε ζην πξνεγνύκελν εξώηεκα. Ωζηόζν πινπνηήζακε έλα παξάδεηγκα κε έλαλ αιγόξηζκν πνπ αμηνπνηεί ην θπξηό πεξίβιεκα γηα λα ειέγμεη αλ ππάξρεη ζύγθξνπζε ηεο ζθαίξαο κε απηό. Πην ζπγθεθξηκέλα αθνύ δεκηνπξγήζακε κία ζθαίξα από πνιιά ζεκεία ζην ρώξν, ηεο νπνίαο ε αθηίλα ξπζκίδεηαη κέζα από ηνλ θώδηθα κέζα ζηελ Render ειέγρακε ζπλερώο αλ κεηά από ηελ θίλεζε ηεο ζθαίξαο απηή ζπγθξνύεηαη ή όρη. Διέγρνπκε ηελ απόζηαζε θπξηνύ πνιπέδξνπ κε θέληξν ηεο ζθαίξαο θαη αλ απηή είλαη κηθξόηεξε ηεο αθηίλαο ηόηε έρνπκε ζύγθξνπζε νπόηεε ζθαίξα γίλεηαη θόθθηλε νιόθιεξε.

Τν αληηθείκελν θαη ε ζθαίξα ζηα δεμηά ηνπ κε γθξη ρξώκα

Page | 16


Αλίρλεπζε ζύγθξνπζεο ζθαίξαο-CH

Αλαζθόπεζε ηεο εξγαζίαο - Βειηηώζεηο – Δπεθηάζεηο Ζ εξγαζία δνθηκάζηεθε ζε ζηαζεξό θαη θνξεηό ππνινγηζηή θαη ιεηηνύξγεζε άςνγα θαη ζηα 2. Υξεηάζηεθαλ πεξίπνπ 15 εκέξεο γηα ηελ νινθιήξσζε ηεο ζπλνιηθά. ΢ην κέιινλ αλακέλεηαη λα βειηηώζσ ηελ εξγαζία θαη λα νινθιεξώζσ θάζε απαίηεζε ηεο, ελώ παξάιιεια ζα επηδηώμσ λα κεηώζσ ηνλ ρξόλν εθηέιεζεο νξηζκέλσλ ηκεκάησλ ηνπ θώδηθα. Ζ εξγαζία απηή κνπ έδσζε ηε δπλαηόηεηα λα πινπνηήζσ αιγνξίζκνπο θαη λα γξάςσ θώδηθα πνπ παξάγεη απνηειέζκαηα άκεζα νξαηά, ελώ παξάιιεια ρξεηάζηεθαλ αξθεηέο ώξεο γηα ζθέςε ηνπ ηξόπνπ επίιπζεο ησλ πξνβιεκάησλ.Ήηαλ επίζεο ηδηαίηεξα ελδηαθέξνλ ην γεγνλόο όηη κνπ δόζεθε ε δπλαηόηεηα λα πξνζζέζσ επηπιένλ ιεηηνπξγίεο γηα ηελ πινήγεζε ηνπ ρξήζηε. Γηα λα κπνξέζεη θάπνηνο λα ρξεζηκνπνηήζεη ηελ εθαξκνγή πξέπεη απαξαίηεηα λα εγθαηαζηήζεη θαη ηηο απαηηνύκελεο βηβιηνζήθεο πνπ αλαθέξακε.

Page | 17


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.