Συμμετρικό σημείο ως προς κέντρο συμμετρίας

 

Οδηγίες για την Pascal

Tο περιβάλλον της Pascal προσφέρεται σε διάφορες εκδόσεις. Σκοπός του σεναρίου είναι να διερευνήσουν οι μαθητές τη γεωμετρία της οθόνης και τους γεωμετρικούς μετασχηματισμούς με απλό τρόπο και σύμφωνα με την απλή εμπειρία που διαθέτουν πάνω στον προγραμματισμό. Για το λόγο αυτό θα χρησιμοποιήσετε την έκδοση της Pascal σε παραθυρικό περιβάλλον, όμως σε πλατφόρμα του λειτουργικού συστήματος DOS, με την οποία έχετε εξοικειωθεί στη συγγραφή απλών προγραμμάτων και στη χρήση βασικών εντολών. Για να μεταγλωττίσετε τα γραμμένα σε Pascal προγράμματά σας μπορείτε να χρησιμοποιήσετε τον compiler Free Pascal που χρησιμοποιείται στις Διεθνείς Ολυμπιάδες Πληροφορικής.

Για να χρησιμοποιήσετε το γραφικό περιβάλλον της Pascal θα πρέπει να δηλώσετε την κατάλληλη μονάδα (unit). Στο πρόγραμμά σας, μετά την ονομασία program, θα ορίσετε τη μονάδα γραφικών, δίνοντας uses graph;. Στη συνέχεια, με την εντολή Initgraph, το πρόγραμμα επιλέγει την κάρτα γραφικών του υπολογιστή και το mode της κάρτας. Η σύνταξή της έχει ως εξής:

Initgraph (graphdriver, graphmode, drivepath) όπου:

 

ü  Η παράμετρος graphdriver := Detect; επιλέγει αυτόματα την κάρτα.

ü  Η παράμετρος graphmode λαμβάνει την τιμή της μεγίστης ανάλυσης.

ü  Η παράμετρος drivepath ορίζει το μονοπάτι που βρίσκονται τα αρχεία με κατάληξη bgi.

 

Σημείωση: Αν εργάζεστε σε έκδοση της Pascal, που για το γραφικό περιβάλλον χρειάζεται τα αρχεία με κατάληξη bgi, θα πρέπει να δηλώνετε το πλήρες μονοπάτι (drivepath) του φακέλου bgi που περιέχει αυτά τα αρχεία (π.χ. c:/pascal/bgi). Μπορείτε βέβαια να έχετε ένα αντίγραφο του φακέλου bgi στο χώρο αποθήκευσης και εκτέλεσης των προγραμμάτων σας, οπότε δεν χρειάζεται το πλήρες μονοπάτι. Η έκδοση της Free Pascal δεν χρειάζεται το φάκελο bgi. Ωστόσο, δεν δημιουργείται πρόβλημα αν έχει δηλωθεί, ώστε να τρέχουν τα προγράμματα και στις δύο περιπτώσεις.

 

Κάθε πρόγραμμα Pascal που θέλει να απεικονίζει pixels θα πρέπει να περιλαμβάνει τα παραπάνω. Για παράδειγμα, αν θέλουμε να τυπώσουμε ένα pixel (θέση 120,100 κόκκινο), θα πρέπει να γράψουμε το παρακάτω πρόγραμμα:

 

Program open-graphika;

uses Graph;

var grDriver,grMode, X,Y,: Integer;

const drivepath='bgi';

begin

grDriver := Detect;

InitGraph(grDriver, grMode, drivepath);

 

X:= 120;

Y:= 100;

PutPixel(X,Y,LightRED);

 

writeln ('πατήστε ENTER για έξοδο');

Readln;

CloseGraph;

end.

 

Οδηγίες εκτέλεσης προγράμματος

Κατά την εκτέλεση του προγράμματος με τη Free Pascal θα εμφανίζονται δύο παράθυρα:

·         Παράθυρο εκτέλεσης εντολών (Free pascal IDE)

·         Παράθυρο γραφικών (graph window applicacion)

 

Όταν σας ζητείται κάποια εντολή εκτέλεσης θα πρέπει να τη δίνετε από το παράθυρο (Free Pascal IDE), εμφανίζοντάς το, και να επιστρέφετε στο παράθυρο (graph window applicacion) για να βλέπετε τα αποτελέσματα.

 

Μερικές ρουτίνες για τα γραφικά της οθόνης είναι οι εξής:

 

ü  Line (x1, y1, x2, y2): Σχηματίζει γραμμή μεταξύ 2 σημείων (χ1, y1) και (x2, y2).

ü  GetMaxX: Επιστρέφει τη μεγίστη τιμή της οριζόντιας συντεταγμένης.

ü  GetMaxY: Επιστρέφει τη μεγίστη τιμή της κατακόρυφης συντεταγμένης.

ü  Circle (x, y, radius): Σχεδιάζει κύκλο με κέντρο (x, y) και radius=ακτίνα.

ü  OutTextXY(X,Y: Integer; TextString: string); Στέλνει ένα string στην οθόνη.

 

Με βάση τις ρουτίνες getmaxX και getmaxY η οθόνη του υπολογιστή έχει συντεταγμένες όπως φαίνονται στο σχήμα 2.

 

 

 

 

 

 

 

 

 

 

 

 

                                                          σχήμα 2

 

Το πρόβλημα που προκύπτει είναι ότι δεν μπορούμε να αναπαραστήσουμε σημεία που έχουν μία ή δύο αρνητικές συντεταγμένες. Για το λόγο αυτό θα πρέπει να κατασκευάσετε δύο νέους άξονες με κέντρο κάποιο άλλο σημείο Κ της οθόνης, ορίζοντας τα κατάλληλα σημεία (2 για κάθε άξονα) και χρησιμοποιώντας την εντολή line. Αν Κ(χκκ) το νέο κέντρο, τότε, όπως φαίνεται στο σχήμα 3, τα σημεία που χρειαζόσαστε, μαζί με τις συντεταγμένες τους, είναι τα:

 

Μ(0, yκ), Μ΄(getmaxX, yκ), Ν(χκ ,0) και Ν΄(χκ, getmaxY)

 

 

 

 

 

 

 

 

                                                σχήμα 3

 

Μετά τη δημιουργία αξόνων, το ερώτημα είναι πώς θα προκύψει ο μετασχηματισμός της συμμετρίας. Οι εξισώσεις διαφοροποιούνται, αφού έχουμε μεταφορά των αρχικών μας αξόνων. Εδώ θα μελετήσουμε την περίπτωση, όπου το κέντρο Κ(χκκ) των αξόνων έχει μεταφερθεί στο κέντρο της οθόνης.

 

 

 

 

 

 

 

 

 

 

 

 

                                                σχήμα 4

 

Όπως θα παρατηρήσετε στο παραπάνω σχήμα, αν (X,Y) είναι οι συντεταγμένες ενός σημείου ως προς το νέο σύστημα αξόνων και (X1,Y1) οι συντεταγμένες που εσείς θέλετε να αναπαραστήσετε (τις δίνετε από πληκτρολόγιο), τότε οι μεταξύ τους σχέσεις δίνονται από τους τύπους X=(AB/2)+X1, Y=(AΓ/2)-Υ1.

 

Για να απεικονίσετε σημεία στο νέο σύστημα αξόνων, θα πρέπει να μετατρέψετε τις συντεταγμένες (Χ1, Υ1) σε (Χ, Υ) σύμφωνα με τους παραπάνω τύπους.

 

 

Προκαταρτικές πληροφορίες

 

Για να γράψετε στον υπολογιστή ένα κείμενο χρησιμοποιείτε την οθόνη κειμένου, η οποία χωρίζεται σε στήλες και γραμμές και σας δίνει τη δυνατότητα να απεικονίσετε ένα πλήθος χαρακτήρων (π.χ. (80x25) χαρακτήρες). Όταν όμως πρόκειται να σχεδιάσετε ή να επεξεργαστείτε εικόνες, τότε θα πρέπει να μεταβείτε στο γραφικό περιβάλλον της οθόνης που, αντί για χαρακτήρες, απεικονίζει μικροσκοπικά pixels. Στην περίπτωση αυτή η οργάνωση της οθόνης αλλάζει και αναλύεται σε γραμμές και στήλες που περιέχουν όχι χαρακτήρες αλλά pixels.

 

Η ανάλυση της οθόνης σε οριζόντια και κατακόρυφη συντεταγμένη εξαρτάται από την κάρτα του υπολογιστή μας. Για παράδειγμα, υπάρχουν κάρτες οθόνης που την αναλύουν σε: (640,480), (800,600), (1024,768) pixels κ.τ.λ. Όταν έχουμε ανάλυση οθόνης (800,600), τότε το σημείο (0,0) αντιστοιχεί στο πάνω αριστερό άκρο της οθόνης και, για κάθε σημείο, η τετμημένη προβάλλεται στον οριζόντιο άξονα και η τεταγμένη στον κάθετο άξονα. Ένα pixel είναι ένα σημείο, π.χ. Μ, που ορίζεται από ένα ζεύγος τιμών (χ,ψ), με χ=Μ1 στον οριζόντιο άξονα και ψ=Μ2 στον κάθετο άξονα (βλ. παρακάτω σχήμα). Τα χ και ψ είναι πάντοτε θετικά.

 

 

 

 

 

  

Δημιουργία προγράμματος

 

Για να ορίσετε στην οθόνη σας το σημείο Μ, με συντεταγμένες (χ,ψ) και ανάλογο χρώμα, χρειάζεστε την εντολή: PutPixel (x, y, color): (τυπώνει ένα απλό σημάδι στο σημείο (x,y) με το αντίστοιχο χρώμα).

 

Για να εμφανίσετε στην οθόνη σας κείμενα ή ονομασίες χρειάζεστε την εντολή OutTextXY, που είναι αντίστοιχη της writeln και, επιπλέον, δέχεται τις συντεταγμένες εμφάνισης του κειμένου που έχει οριστεί.

 

Το πρόγραμμα που ακολουθεί αποτελείται από διαδοχικές εντολές που ορίζουν: (α) το γραφικό περιβάλλον, (β) τις συντεταγμένες ενός σημείου Μ με χρήση των ακεραίων μεταβλητών X (τετμημένη) και Y (τεταγμένη), (γ) την εμφάνιση του σημείου στην οθόνη και (δ) την ονομασία του. Να γράψετε, να μεταφράσετε και να εκτελέσετε το παρακάτω πρόγραμμα στο περιβάλλον Pascal του εργαστηρίου σας (ονομάστε το my1_7a).

 

 

Program emfanisi_pixel;

 {EMFANISI PIXEL}

 uses crt, Graph;

 var grDriver,grMode, X,Y: Integer;

begin

 grDriver := Detect;

 InitGraph(grDriver, grMode,'bgi');

 setcolor(green);

 outtextXY (150,10, 'EMFANISI KAI ONOMASIA PIXELS');

 {SYNTETAGMENES, EMFANISI,ONOMASIA SIMEIOY}

 X:=134;

 Y:=145;

 PutPixel(X,Y,red);

 setcolor(lightred);

 outtextXY (X+4, Y-8, 'M(134,145)');

{exodos}

 setcolor(yellow);

{EXODOS}

 outtextXY (900, 600, 'minimize gia epistrofi’);

 Writeln (‘ENTER GIA EXODO’)

 Readln;

 CloseGraph;

end.

 

 

Κατεβάστε το πρόγραμμα εδώ.

Κατεβάστε το εκτελέσιμο αρχείο εδώ.

 

 

Ερωτήματα – Διερευνήσεις

 

Για να βρείτε το συμμετρικό του σημείου Μ(134,145) ως προς κέντρο ένα άλλο σημείο Κ (π.χ. Κ(234,245)), θα πρέπει πρώτα να το ορίσετε. Αναφέρετε ποιες προσθήκες θα κάνετε στο πρόγραμμα my1_7a, ώστε να εμφανίζεται στην οθόνη σας και το σημείο Κ. Αποθηκεύστε στο φάκελό σας το πρόγραμμα ως my1_7b.

 

 

Κατεβάστε το πρόγραμμα εδώ.

Κατεβάστε το εκτελέσιμο αρχείο εδώ.

 

 

Περαιτέρω ενασχόληση

 

1.   Πειραματιστείτε δίνοντας από το πληκτρολόγιο τις συντεταγμένες.

 

2.   Έστω Μ(χ, ψ) και Κ(χκ, ψκ) δύο σημεία που έχετε εμφανίσει στην οθόνη σας και Ν(χς, ψς) το συμμετρικό του σημείου Μ με κέντρο το σημείο Κ. Συμπληρώστε τις εξισώσεις του μετασχηματισμού.

 

Xs:=

Ys:=;

 

3.   Ποιες προσθήκες θα πρέπει να κάνετε στο πρόγραμμα my1_7b, ώστε να εμφανίζεται στην οθόνη σας και το σημείο N; Αποθηκεύστε στο φάκελό σας το πρόγραμμα ως my1_7c.

 

          Κατεβάστε το πρόγραμμα εδώ.

          Κατεβάστε το εκτελέσιμο αρχείο εδώ.

  

4. Προσθέστε έλεγχο τέλους στο πρόγραμμα, ώστε να μπορείτε να βρίσκετε τα συμμετρικά πολλών σημείων.