Καµπύλες Bézier και Geogebra Κόλλιας Σταύρος
Ένα από τα προβλήµατα στη σχεδίαση δυσδιάστατων εικόνων στα προγράµµατα γραφικών των υπολογιστών είναι η δηµιουργία οµαλών καµπυλών. Η λύση στο πρόβληµα αυτό είναι η χρήση καµπυλών Bézier (Μπεζιέ). Μια καµπύλη Bézier είναι µια παραµετρική καµπύλη και αποτελεί βασικό εργαλείο για την δηµιουργία διανυσµατικών γραφικών (Vector Graphics). Βασικός λόγος είναι ότι µπορούν να µεγεθυνθούν και να σµικρυνθούν χωρίς απώλεια ποιότητας σε αντίθεση µε τα γραφικά ψηφίδων (Bitmap Graphics). Αν έχετε σχεδιάσει ποτέ καµπύλες γραµµές µε το Flash, το Illustrator, το CorelDraw ή το MicrosoftOffice τότε έχετε χρησιµοποιήσει τις καµπύλες Bézier. Μία καµπύλη Bézier ορίζεται από ένα σύνολο σηµείων ελέγχου από P 0 έως P n, όπου n ο βαθµός της καµπύλης (n = 1 για γραµµική, για τετραγωνική, 3 για κυβική, κλπ.). Το πρώτο και τελευταίο σηµείο ελέγχου είναι πάντα τα δύο σηµεία που αποτελούν τα άκρα της καµπύλης. Ωστόσο, τα ενδιάµεσα σηµεία ελέγχου (αν υπάρχουν) γενικά δεν ανήκουν στην καµπύλη. Η καµπύλη είναι το µονοπάτι που ξεκινά από το πρώτο σηµείο και κατευθύνεται προς το δεύτερο σηµείο για να στρίψει προς το τρίτο σηµείο και συνεχίζει µε τον ίδιο τρόπο ώσπου να καταλήξει στο τελευταίο σηµείο. Η απλούστερη µορφή καµπύλης Bézier είναι το ευθύγραµµο τµήµα από ένα σηµείο P 0 σε ένα σηµείο P 1 µε παραµετρική εξίσωση Για t = 0 έχουµε B t = P + t P P = 1 t P + tp, t 0, 1 P0 P1 0 1 0 0 1 B 0 = P P0 P1 0 t µεταξύ του 0 και του 1 το P P τµήµατος και µάλιστα είναι ο σταθµισµένος µέσος των 0 και 1 µε βάρη 1 t και t αντίστοιχα. BP0 P1 ενώ για t = 1 έχουµε B 1 = P P0 P1 1. Για τιµή του είναι εσωτερικό σηµείο του ευθυγράµµου P, P, Η Καµπύλη Bézier που ορίζεται από τρία σηµεία 0 1 P ονοµάζεται τετραγωνική και έχει παραµετρική εξίσωση B t = 1 t B t + t B t P 0 P 1 P P 0 P 1 P 1 P = 1 t 1 t P t P 0 1 t 1 t P t P + + + 1 ( 0 ) 1 = 1 t P + 1 t t P + t P, t 0, 1 Από τη σχέση (1) φαίνεται ότι καµπύλη BP0 P1 και BP1 P µε βάρη 1 t και t αντίστοιχα µε t 0, 1. Όταν τα 1 (1) BP0 P1 P είναι ο σταθµισµένος µέσων των
σηµεία P 0, P, P είναι συνευθείακα τότε η παραµετρική εξίσωση 1 BP0 P1 P έχει P P P γραφική παράσταση ευθύγραµµο τµήµα, ενώ, αν το 1 είναι µεταξύ των 0 και, δίνει το ευθύγραµµο τµήµα τότε η BP0 P1 P P P 0 και είναι τµήµα παραβολής. Οι εφαπτόµενες της καµπύλης στα σηµεία P. αντίστοιχα, διέρχονται από το 1 P, P, P, Η κυβική καµπύλη Bézier ορίζεται από τέσσερα σηµεία 0 1 βρίσκονται στο ίδιο επίπεδο ή σε χώρο µεγαλύτερης P διάστασης. Τα σηµείο 0 P P τέλος της καµπύλης ενώ τα σηµεία 1 και σηµεία ελέγχου της. Η κυβική καµπύλη Bézier ορίζεται ως σταθµισµένος µέσος των δύο τετραγωνικών καµπυλών B ( t P ) 0P1 P και µε βάρη βάρη 1 t και t αντίστοιχα µε t 0, 1. Είναι = ( ) + B t 1 t B t t B t P 0 P 1 P P 3 P 0 P 1 P P 1 P P3 3 3 = 1 t P + 3 1 t t P + 3 1 t t P + t P, t 0, 1 0 1 3 Γενικεύοντας µπορούµε να ορίσουµε την καµπύλη Bézier από ν σηµεία P 0, P, P, 1 3 ν P1 P1 PP 3...Pν B t µε συντελεστές 1 t και t αντίστοιχα. ηλαδή ( P P. 0 P, P, P Αν τα σηµεία 0 1 P και 3 είναι η αρχή και BP1 PP 3 είναι B t = 1 t B t + t B t, t 0, 1. P 0 P 1 P P 3...P ν P 0 P 1 P...P ν 1 P 1 P P 3...P ν ν ν ν 1 ν ν = (1 1 t ) P + ( 1 t tp + 0 1 t 1 1 ) t P +... ν ν 1 ν... + ( 1 t ) t P + t P, ν 1 ν 1 ν t 0, 1 Εποµένως η καµπύλη Bézier που ορίζεται από 7 σηµεία είναι η 3 δεν είναι συνευθειακά 6 5 4 P0 P1 P P3 P4 P5 P6 0 1 B t = 1 t P + 6 1 t tp + 15 1 t t P + 0 1 t t P 15 1 t t P 6 1 t t P t P, t 0, 1. 3 4 5 6 + + + + 3 4 5 6 = 1 t 1 t P + 1 t t P + t P + 0 1 + t ( 1 t ) P + ( 1 t ) t P + t P 1 3 B P,...P ως τον γραµµικό συνδυασµό των καµπυλών P0P 1P P 3...Pν 1 ) ( t P3 ) που µπορεί να και
Τα σηµεία P i ονοµάζονται σηµεία ελέγχου για τις καµπύλες Bézier. Το πολύγωνο που σχηµατίζεται από τα σηµεία P 0, P, P, P,...P 1 3 ν ονοµάζεται πολύγωνο Bézier ή πολύγωνο ελέγχου. Το κυρτό περίβληµα του πολυγώνου Bézier περιέχει την καµπύλη Bézier. Κυρτό περίβληµα Κατασκευή Καµπυλών Bézier µε γεωµετρική ερµηνεία του αλγόριθµου του De Casteljau Θεωρούµε τα σηµεία P,P,...,P. Ενώνοντας τα σηµεία αυτά συνεχόµενα 0 1 n δηµιουργείται το πολύγωνο ελέγχου της καµπύλης. t Υποδιαιρούµε κάθε ευθύγραµµο τµήµα του πολυγώνου αυτού µε λόγο και 1 t συνδέουµε τα σηµεία που παίρνουµε. Με το τρόπο αυτό κατασκευάζουµε ένα νέο πολύγωνο το οποίο έχει ένα τµήµα λιγότερο. Επαναλαµβάνουµε την παραπάνω διαδικασία µέχρι να φτάσουµε σε ένα σηµείο. Αυτό το σηµείο αντιστοιχεί στην τιµή της καµπύλης για την τιµή του t που έχουµε. Κατασκευή της καµπύλης στο Geogebra γεωµετρικά. Θα κατασκευάσουµε µια κυβική καµπύλη Bézier δηλαδή µια καµπύλη που ορίζεται από τέσσερα σηµεία ελέγχου. Ανοίγουµε το Geogebra και κατασκευάζουµε στην οθόνη γραφικά τέσσερα σηµεία, τα Α, Β, Γ,. Κατασκευάζουµε στη συνέχεια το ευθύγραµµο τµήµα ΑΒ και παίρνουµε πάνω σε αυτό ένα σηµείο Ε. Ονοµάζουµε t τον λόγο ΑΕ/ΑΒ µε την εντολή t=τµήµα[α,ε]/τµήµα[α,β] Κατασκευάζουµε στη συνέχεια τα σηµεία Ζ, Η ώστε να χωρίζουν τα τµήµατα ΒΓ, Γ σε τµήµατα µε λόγο t/1-t. Για να γίνει αυτό γράφουµε διαδοχικά στη γραµµή εντολών Ζ=Β+t(Β-Γ) και πατάµε Enter, Η=Γ+t( -Γ) και πατάµε Enter. Στη 3
συνέχεια ορίζουµε τα σηµεία Θ και Ι έτσι ώστε να χωρίζουν τα τµήµατα ΕΖ και ΖΗ σε λόγο t/1-t. Γράφουµε διαδοχικά στη γραµµή εντολών Θ=Ε+t(Ζ-Λ) και πατάµε Enter, Ι=Ζ+t(Η-Ζ) και πατάµε Enter. Τέλος ορίζουµε το σηµείο Κ έτσι ώστε να χωρίζει το τµήµα ΘΙ σε λόγο t/1-t γράφοντας στη γραµµή εντολών Κ=Θ+t(Ι-Θ) και πατάµε Enter. Ο γεωµετρικός τόπος του σηµείου Κ καθώς το σηµείο Ε διατρέχει το ευθύγραµµο τµήµα ΑΒ, και άρα ο αριθµός t διατρέχει το διάστηµα [0,1], είναι η καµπύλη Bézier που έχει σηµεία ελέγχου τα Α,Β,Γ,. Για να τον δηµιουργήσετε κάντε κλικ στο εργαλείο γεωµετρικός τόπος και στη συνέχεια κλικ στον δροµέα t και στο σηµείο Τ. Μετακινώντας τα σηµεία ελέγχου θα µεταβάλετε την καµπύλη. Στην παρακάτω εικόνα βλέπετε το πρωτόκολλο κατασκευής της καµπύλης γεωµετρικά. Το αρχείο Geogebra που περιέχει την εφαρµογή είναι το bezier001. 001.ggb Μπορείτε να κατασκευάσετε την καµπύλη χρησιµοποιώντας την παραµετρική εξίσωση της καµπύλης. Π.χ. Ανοίξτε ένα νέο παράθυρο στο Geogebra, πάρτε τέσσερα σηµεία Α, Β, Γ, και στη συνέχεια γράψτε στη γραµµή εντολών Β(t)=(1-t)^3*Α+3*(1-t)^*t*Β+3*(1-t)*t^*Γ+t^3* ^3* και πατήστε Enter. Το Geogebra θα δηµιουργήσει και θα σχεδιάσει την παραµετρική καµπύλη Bézier, όµως το t θα παίρνει τιµές από -10 έως 10. Κάντε διπλό κλικ πάνω στην εξίσωση της καµπύλης και ορίστε ως διάστηµα για το t το [0,1] 4
αρχείο Geogebra που περιέχει την εφαρµογή είναι το bezier00.ggb Μπορείτε επίσης να κατασκευάσετε και τρισδιάστατη καµπύλη Bézier. Ανοίξτε το αρχείο bezier001.ggb κάντε προβολή της οθόνης 3D και µετακινήστε τα σηµεία ελέγχου στον χώρο. Στο αρχείο bezier003.ggb θα βρείτε το ίδιο παράδειγµα χωρίς όµως τα ευθύγραµµα τµήµατα. Για να δηµιουργήσετε τρισδιάστατη παραµετρική καµπύλη, ανοίξτε ένα νέο παράθυρο στο Geogebra, πάρτε τέσσερα σηµεία Α, Β, Γ, στην οθόνη 3D και στη συνέχεια γράψτε στη γραµµή εντολών ΠαραµετρικήΚαµπύλη[(1 - t)³ x(α) + 3(1 - t)² t x(β) + 3 (1 - t) t² x(γ) + t³ x( ), (1 - t)³ y(α) + 3(1 - t)² t y(β) + 3 (1 - t) t² y(γ) + t³ y( ), (1 - t)³ z(α) + 3(1 - t)² t z(β) + 3 (1 - t) t² z(γ) + t³ z( ), t, 0, 1] 5
και πατήστε Enter. Το Geogebra θα δηµιουργήσει και θα σχεδιάσει την παραµετρική καµπύλη Bézier µε σηµεία ελέγχου τα Α,Β,Γ,. Το παράδειγµα θα το βρείτε στο αρχείο bezier004.ggb. Στο αρχείο bezier005.ggb δηµιουργήθηκε ένα 3d σχήµα µε περιστροφή της καµπύλης Bézier γύρω από τον άξονα z. Η ταχύτητα µε την οποία ανταποκρίνονται τα σηµεία ελέγχου ίσως είναι αργή, λόγω των υπολογισµών που πρέπει να γίνονται κάθε φορά που τα µετακινείτε. Στο αρχείο bezier006.ggb υπάρχει ένα παράδειγµα µε δύο ενωµένες κυβικές καµπύλες Bézier. 6
7