HY252. Περιγραφή Εργασίας. Graphic Editor

Σχετικά έγγραφα
Σχεδίαση με το AutoCAD

Η ΕΞΕΡΕΥΝΗΣΗ ΤΩΝ WINDOWS (WINDOWS EXPLORER)

Περιεχόμενα. Λίγα λόγια από το συγγραφέα Windows Vista Επιφάνεια εργασίας Γραμμή εργασιών... 31

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

Τα Windows Πολύ Απλά και Πολύ Σύντομα

1. Τα τμήματα της επιφάνειας εργασίας των Windows

1. Κατανόηση Και Αλλαγή Μεταξύ Προβολών Εμφάνισης Της Παρουσίασης. 1. Κατανόηση Και Αλλαγή Μεταξύ Προβολών Εμφάνισης Της Παρουσίασης

Θέματα 3,4 ης εβδομάδας. Πίνακες Εικόνες Πρότυπα/Δημιουργία προτύπων εγγράφων Στήλες

«Αβάκιο» Οδηγός χρήσης Μικρόκοσμου που αποτελείται από τις ψηφίδες Καμβάς, Χελώνα, Γλώσσα, Μεταβολέας, Χρώματα.

Προγραμματιστικό Περιβάλλον

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης

Κεφάλαιο 3 Βασική Σχεδίαση και Επεξεργασία

Εγχειρίδιο Χρήσης Draw for Children. Περιεχόμενα

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»...

04. Μορφοποίηση περιεχομένων σχεδίου & σύνθετα εργαλεία σχεδίασης

Εργαστήριο 7 - Άσκηση - Ανάλυση

Παιχνιδάκια με τη LOGO

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch

ΣΧΕΔΙΟ ΣΤΟΝ Η/Υ. Ενότητα 2: Εντολές σχεδίασης Rectangle, Circle, εντολές επεξεργασίας Offset, Trim, Erase.

Atlantis - Νέο user interface

Πρακτικές οδηγίες για την Επεξεργασία Κειμένου

Ο ΗΓΙΕΣ DOCUMENT DESIGNER

Οδηγίες για το SKETCHPAD Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας. Με την εκτέλεση του Sketchpad παίρνουμε το παρακάτω παράθυρο σχεδίασης:

Δημιουργώντας μια εφαρμογή ζωγραφικής. 2 η Εργασία

ηµιουργία ιαλογικών Προγραµµάτων για το Web

Εκτύπωση Γενικού Ημερολογίου

Εκκίνηση προγράμματος

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

Atlantis - Νέο user interface

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων

Ας μετονομάσουμε τη γάτα που εμφανίζεται μόλις ανοίγουμε το Scratch. Επιλέγουμε το εικονίδιο Μορφή1 που βρίσκεται στη λίστα αντικειμένων.

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

Ευ ομή. Εγχειρίδιο χρήσης του περιβάλλοντος LT125-dp

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

MICROSOFT OFFICE 2003 MICROSOFT WORD 2003

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

Σχεδιασμός εκτυπώσεων ERG

Παράµετροι ιαχείρισης Λογιστικής. Τύποι Λογιστικών Άρθρων. Ηµερολόγια Λογιστικής. Στοιχεία Λογαριασµών Λογιστικού Σχεδίου

Ο ΣΚΟΠΟΣ ΤΟΥ ΕΚΠΑΙ ΕΥΤΙΚΟΥ ΠΑΡΑ ΕΙΓΜΑΤΟΣ ΕΙΝΑΙ Η ΣΧΕ ΙΑΣΗ ΤΟΥ ΠΑΡΑΚΑΤΩ ΣΧΗΜΑΤΟΣ

Σχεδιασμός εκτυπώσεων ERG

ΣΧΗΜΑΤΑ-ΕΙΚΟΝΕΣ-ΕΞΙΣΩΣΕΙΣ

Δημιουργία η-μαθήματος με τη. 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας

Πίνακες, περιγράµµατα και σκίαση

Προγραμματισμός με Logo στο MicroWorlds Pro

Οδηγίες για το CABRI - GEOMETRY II Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας

ΔΗΜΙΟΥΡΓΙΑ ΣΧΗΜΑΤΩΝ. 1) Προβολή Γραμμές εργαλείων Σχεδίαση. ΜΑΘΗΜΑ 5 ο : ΣΧΗΜΑΤΑ-ΕΙΚΟΝΕΣ-ΕΞΙΣΩΣΕΙΣ 1

Εμφανίζονται 3 επιλογές με 3 εικονίδια, η «ζωγραφική», η «εισαγωγή» και η «κάμερα».

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

ΣΗΜΕΙΩΣΕΙΣ. στη γλώσσα προγραμματισμού. Γκέτσιος Βασίλειος

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

Επεξεργασία πολλαπλών φύλλων εργασίας - Γραφημάτων Excel

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

Offset Link.

2.1 Αντικειµενοστρεφής προγραµµατισµός

ΜΑΘΗΜΑ 5 ΣΤΟΧΟΙ: Τρόπος 1:

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Αυτόματο Κλείσιμο Ισολογισμού

Αυτόματο Κλείσιμο Ισολογισμού

Ενότητα 18 Οργάνωση των Βιβλίων Εργασίας

Εκπαιδευτικό Εργαλείο Κανονικοποίησης

Ζωγραφική έναντι Κατασκευής

ΘΕΜΑ ΠΑΡΟΥΣΙΑΣΗΣ «Τεχνικές οδηγίες & διαδικασία καταχώρισης ορίων άρθρου 23 στη διαδικτυακή εφαρμογή»

Οδηγός Χρήστη για το ιαλειτουργικό Χάρτη

ΚΕΦΑΛΑΙΟ ΙΙ. OpenOffice 3.x Draw

Εισαγωγή στο πρόγραμμα Microsoft word 2003

1. Βασικές Λειτουργίες των Windows

7 ο Εργαστήριο Θόρυβος 2Δ, Μετακίνηση, Περιστροφή

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Ο ΗΓΟΣ ΧΡΗΣΗΣ Kidspiration 2.1

Κάνουμε κλικ πάνω στην επικεφαλίδα όπου υπάρχει το αντίστοιχο γράμμα της στήλης.

1. Γνωριμία Με Το Περιβάλλον Του Ηλεκτρονικού Υπολογιστή

Δημιουργώντας γραφικά στο περιβάλλον 3Ds Max χρησιμοποιώντας βασικά εργαλεία

Εφαρμογές Πληροφορικής στην Τοπογραφία 4η Ενότητα - Εντολές σχεδίασης παραλληλόγραμμου, κύκλου και τόξου

Κάντε δεξιό κλικ πάνω σε ένα επιλεγμένο αρχείο και επιλέξτε Μετακίνηση ή. ή Επιλέξτε Αποκοπή από την καρτέλα Αρχική της κορδέλας.

Αποθήκη. Διαχείριση Αποθήκης. Published on PRISMA Win Help - Megasoft (

Singular Report Generator. Σχ 1 ηµιουργία Καταστάσεων SRG

Παράρτημα Έκδοση 2017

Εργασία-3: Παρουσίαση Εργασίας. Ομάδα Α. Προετοιμασία Αναφοράς

Point Of Sale ΔΙΑΧΕΙΡΙΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ

Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

Βασικά Στοιχεία Μορφοποίησης

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

KiCad Create new project Eeschema Electronic schematic editor Eeschema Page settings grid Place component

Ένα διαδικτυακό εργαλείο δημιουργίας παρουσιάσεων

Αθήνα, Απρίλιος 2018 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΚΩΝ

1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα

03. Τροποποίηση σχεδιασμένων οντοτήτων

Copyright 2017 HP Development Company, L.P.

Ας ξεκινήσουμε λοιπόν!

ΕΡΩΤΗΣΕΙΣ στην επεξεργασία κειμένου (Word)

Unity Editor #03 Κεντρικό Μενού: Edit

Εισαγωγή στο 3DS Max 2009

Εισαγωγή εικόνας / γραφικού - διαγράμματος σε έγγραφο

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

2. Κάντε κλικ στο παράθυρο όψης Top για να το ενεργοποιήσετε, ώστε να σχεδιάσετε το πάτωµα του δωµατίου.

Εντολές της LOGO (MicroWorlds Pro)

Transcript:

HY252 Περιγραφή Εργασίας Graphic Editor - 1 -

Περιγραφή Εργασίας Graphic Editor 1. Περιγραφή της εργασίας Το Graphic Editor είναι ένα πρόγραµµα ζωγραφικής που σκοπό έχει να δηµιουργεί και να χειρίζεται απλά γεωµετρικά σχήµατα. Τα σχήµατα που θα χειρίζεται ο χρήστης θα µπορούν να είναι ευθείες, κύκλοι, ορθογώνια, τετράγωνα και αστέρια. Οι λειτουργίες τις οποίες θα µπορεί να εκτελεί ο χρήστης, εκτός από την δηµιουργία κάποιου αντικειµένου, θα είναι η µεταφορά του, η αντιγραφή του, η διαγραφή του ή ακόµη και η οµαδοποίηση κάποιων από αυτά. Ακόµη ο χρήστης θα µπορεί µετά την διαγραφή κάποιου συγκεκριµένου αντικειµένου να το επαναφέρει. Τέλος θα δίνεται η δυνατότητα αποθήκευσης του σχεδίου (του συνόλου των σχηµάτων) που θα έχει δηµιουργήσει ο χρήστης έτσι ώστε να µπορεί αργότερα να το επαναφέρει. Το περιβάλλον της εφαρµογής θα αποτελείται από δύο κύρια στοιχεία. Το ένα θα είναι η περιοχή που θα επιτρέπει στον χρήστη να σχεδιάζει και να χειρίζεται τα σχήµατα που επιθυµεί και το δεύτερο η µπάρα εργαλείων και µενού µέσω των οποίων θα επιλέγει κάθε φορά την συγκεκριµένη λειτουργία που θα εκτελέσει. 2. Περιγραφή Περιβάλλοντος Η εφαρµογή θα αποτελείται από το κύριο µέρος το οποίο είναι το σχεδιαστικό περιβάλλον και από δύο toolbars. Η σχεδιαστική επιφάνεια (canvas) θα επιτρέπει στο χρήστη να δηµιουργεί τα αντικείµενα και να τα χειρίζεται (οι λειτουργίες που θα µπορούν να εκτελούνται θα αναλυθούν διεξοδικά παρακάτω). Εκτός από αυτήν την επιφάνεια θα υπάρχουν και δύο µπάρες εργαλείων. Η µία θα είναι αριστερά και θα αποτελείται από κουµπιά τα οποία θα αντιστοιχούν σε λειτουργίες που εφαρµόζονται σε αντικείµενα του σχεδίου µας. Τα κουµπιά που θα υπάρχουν θα είναι ένα για την δηµιουργία κάθε διαφορετικού σχήµατος, ένα για την µετακίνηση των αντικειµένων, δυο για την διαγραφή και την επαναφορά αντίστοιχα, δύο για την αντιγραφή και την επικόλληση και ένα για την οµαδοποίηση δύο αντικειµένων και ένα για την αναίρεση της οµαδοποίησης. Η δεύτερη µπάρα θα περιέχει καταρχήν την load, την save και την δηµιουργία νέου σχεδίου (το «φόρτωµα», την αποθήκευση και την δηµιουργία νέου σχεδίου αντίστοιχα). Επίσης θα περιέχει και κάποιες λειτουργίες οι οποίες έχουν οριστεί ήδη στην αριστερή µπάρα ( όπως για παράδειγµα η copy και η paste ). - 2 -

3 Ανάλυση των Λειτουργιών 3.1 ηµιουργία Νέου Σχήµατος ( create ) Ο χρήστης µέσω αυτής της λειτουργίας θα µπορεί να δηµιουργεί ζωγραφίζει αντικείµενα µέσα στον canva. Τα σχήµατα τα οποία θα µπορεί να δηµιουργεί είναι ευθείες, τετράγωνα, ορθογώνια, κύκλους και αστέρια. Για να ζωγραφίζει τα αντικείµενα αυτά καταρχήν θα πρέπει να πατάει το κουµπί δηµιουργίας του συγκεκριµένου αντικειµένου (κάθε αντικείµενο έχει το δικό του κουµπί «δηµιουργία αντικειµένου»). Το σηµείο στο οποίο θα πατηθεί το mouse για πρώτη φορά, αφού µετακινηθεί µέσα στον canva, θα αποτελεί το αρχικό σηµείο του σχήµατος. Ενώ για την ευθεία θα αποτελεί απλά το ένα από τα δύο σηµεία που θα την σχηµατίζουν, για το ορθογώνιο και για το τετράγωνο θα είναι το πάνω αριστερά σηµείο του σχήµατος. Για τον κύκλο και το αστέρι το αρχικό σηµείο θα είναι το κέντρο του καθενός. Το σηµείο στο οποίο ο χρήστης θα απελευθερώσει το mouse θα αποτελεί το δεύτερο κρίσιµο σηµείο για το σχήµα. Για την ευθεία (ευθύγραµµο τµήµα) θα είναι το τελικό σηµείο, για το ορθογώνιο και το τετράγωνο θα καθορίζει το µήκος και το πλάτος του σχήµατος και για τον κύκλο και το αστέρι θα είναι η ακτίνα (το αστέρι είναι εγγεγραµµένο σε ένα κύκλο). 3.2 Μετακίνηση Σχήµατος ( move ) Μέσω αυτής της λειτουργίας ο χρήστης θα έχει την δυνατότητα να µετακινεί κάποιο από τα σχήµατα που έχει προηγουµένως δηµιουργήσει. Για να εκτελέσει αυτήν τη λειτουργία θα πρέπει αρχικά να πατήσει το αντίστοιχο κουµπί move που θα βρίσκεται στην αριστερή µπάρα (ή εναλλακτικά µέσω του µενού). Έπειτα θα πρέπει ο χρήστης να «διαλέξει» µια περιοχή µέσα στον canva. Αυτό θα επιτευχθεί µε µια διαδικασία παρόµοια µε αυτή της δηµιουργίας ενός ορθογωνίου. Το σηµείο που το mouse θα πατηθεί για πρώτη φορά θα αποτελεί το πάνω αριστερά σηµείο ενός ορθογωνίου και το σηµείο που θα αφεθεί θα καθορίσει το µήκος και το πλάτος του. Εάν αυτό το ορθογώνιο περικλείει κάποιο από τα σχήµατα που υπάρχουν στον canva τότε αυτό το σχήµα θα µετακινηθεί. Εάν το ορθογώνιο περικλείει περισσότερα από ένα σχήµατα, τότε αυτό που θα µετακινηθεί θα είναι αυτό που θα βρίσκεται πιο κοντά στην πάνω αριστερά γωνία του. Η απόσταση θα υπολογίζεται λαµβάνοντας υπ όψιν το πάνω αριστερά σηµείο του κάθε σχήµατος (για τα σχήµατα όπως ο κύκλος που δεν έχουν πάνω αριστερά σηµείο θα λαµβάνεται υπ όψιν το τετράγωνο του οποίου οι πλευρές εφάπτονται σε αυτόν). Ύστερα από αυτήν τη διαδικασία ο χρήστης είναι έτοιµος πατώντας το mouse µέσα στην σχεδιαστική περιοχή να µετακινήσει το επιλεγµένο αντικείµενο. Το σηµείο που θα πατήσει το mouse θα αποτελεί το «κεντρικό» σηµείο για κάθε σχήµα ( για τον κύκλο και το αστέρι είναι το κέντρο τους ενώ για το ορθογώνιο και το τετράγωνο είναι η τοµή των διαγωνίων). - 3 -

3.3 Αντιγραφή και Επικόλληση Σχήµατος ( copy paste ) Ο χρήστης θα µπορεί ακόµη να επιλέξει ένα αντικείµενο να το κάνει copy και ύστερα να το κάνει paste. Καταρχήν θα πρέπει να πατηθεί το κουµπί αντιγραφής είτε από την αριστερή µπάρα είτε από την πάνω και µετέπειτα να επιλεγεί κάποιο αντικείµενο. Η διαδικασία επιλογής του αντικείµενου θα είναι παρόµοια µε αυτή της επιλογής αντικειµένου για µετακίνηση. Έπειτα ο χρήστης θα πρέπει να πατήσει το κουµπί επικόλλησης (paste) και αφού φέρει το κέρσορα µέσα στην σχεδιαστική περιοχή να κάνει click στο σηµείο που επιθυµεί να αντιγράψει το αντικείµενο (αντίστοιχα το σηµείο στο οποίο θα πατηθεί το mouse θα είναι το «κεντρικό» σηµείο του σχήµατος). Πρέπει να σηµειωθεί ότι ο χρήστης θα µπορεί να κάνει για ένα copy πολλαπλό paste (το σχήµα θα αποθηκεύεται σε µια µεταβλητή έως ότου κάποιο άλλο σχήµα να γίνει copy). 3.4 Σβήσιµο και Επαναφορά Σχήµατος ( delete undelete ) Επίσης ο χρήστης θα µπορεί να επιλέξει ένα σχήµα µε σκοπό την διαγραφή του. Η διαδικασία επιλογής και διαγραφής του αντικειµένου είναι παρόµοια µε τις προηγούµενες. Το µόνο που χρειάζεται να κάνει είναι αρχικά να πατήσει το κουµπί διαγραφής (delete) και µετά να επιλέξει το αντικείµενο. Αυτόµατα τότε το αντικείµενο θα διαγραφεί από τον canva. Ύστερα από την διαγραφή ενός ή περισσοτέρων αντικειµένων ο χρήστης θα µπορεί να τα επαναφέρει (πρώτα θα επαναφέρει το τελευταίο αντικείµενο που διαγράφηκε). Η λειτουργία undelete θα ενεργοποιείται µε το απλό πάτηµα ενός κουµπιού και η θέση και το µέγεθος του αντικειµένου θα είναι αυτά που είχε το σχήµα πριν από την διαγραφή του. Είναι σηµαντικό να σηµειωθεί ότι ο χρήστης θα µπορεί να εκτελεί την undelete τόσες φορές όσες έχει καλέσει και την delete. Εάν δηλαδή ο χρήστης διαγράψει τρία αντικείµενα τότε θα µπορεί αργότερα να τα επαναφέρει και τα τρία και όχι µόνο το τελευταίο από αυτά. 3.4 Οµαδοποίηση και Αναίρεση Οµαδοποίησης ( grouping - ungrouping ) Με αυτή τη λειτουργία ο χρήστης θα έχει την δυνατότητα να οµαδοποιεί αντικείµενα και να τα χειρίζεται σαν ένα αντικείµενο. Αυτό σηµαίνει ότι εφόσον δύο αντικείµενα οµαδοποιηθούν οι λειτουργίες move, delete, copy θα συµπεριφέρονται στα σύνθετα αντικείµενα σαν να είναι ένα από τα γνωστά αντικείµενα. Ακόµη και η λειτουργία group θα συµπεριφέρεται στα αντικείµενα σαν να είναι απλά αντικείµενα. Αυτό σηµαίνει ότι θα µπορούν να οµαδοποιηθούν δυο αντικείµενα τα οποία τα οποία είναι από µόνα τους οµαδοποιηµένα αντικείµενα. Η διαδικασία οµαδοποίησης θα είναι η εξής : Καταρχήν θα επιλέγει την συγκεκριµένη λειτουργία από την µπάρα εργαλείων. Έπειτα θα διαλέξει διαδοχικά δύο περιοχές για να επιλέξει ( µε αντίστοιχο τρόπο όπως και παραπάνω ) τα δύο αντικείµενα που θα οµαδοποιήσει. Η διαδικασία αναίρεσης της οµαδοποίησης θα είναι πιο απλή. Ο χρήστης θα πατάει καταρχήν το κουµπί ungrouping και ύστερα θα επιλέγει το σύνθετο - 4 -

αντικείµενο ( µε την έννοια ότι το αντικείµενο αυτό θα αποτελείται από απλά σχήµατα ) το οποίο επιθυµεί να αποσυνθέσει στα σχήµατα που το έχουν σχηµατίσει. Στην περίπτωση που ένα σύνθετο σχήµα έχει σχηµατιστεί από άλλα σύνθετα σχήµατα τότε όταν αυτό γίνει ungroup τότε θα επανέλθει στα αρχικά σύνθετα σχήµατα και όχι στα απλά σχήµατα τα οποία αρχικά χρησιµοποιήθηκαν. 3.5 Αποθήκευση, Φόρτωµα και ηµιουργία Αρχείου (save load) Τέλος ο χρήστης θα έχει την δυνατότητα να αποθηκεύσει σε ένα αρχείο το σχέδιο το οποίο έχει σχεδιάσει έτσι ώστε να µπορεί αργότερα να το επαναφέρει. Τα αρχεία τα οποία θα αποθηκεύουν τα σχέδια θα είναι.ge format. και θα εµπεριέχουν τα σχήµατα που είναι ζωγραφισµένα στο canva. Στην αρχή κάθε γραµµής θα εµπεριέχεται το όνοµα του κάθε σχήµατος ( για το ορθογώνιο η λέξη rectangle, για τον κύκλο circle κτλ). Μετά θα υπάρχει ένας ακέραιος ο οποίος θα είναι είτε το πάνω αριστερά σηµείο είτε το κέντρο του σχήµατος (ανάλογα µε την περίπτωση). Τέλος για κάθε σχήµα θα υπάρχουν και άλλοι ακέραιοι που θα είναι είτε το τελικό σηµείο για την ευθεία είτε το µήκος και το πλάτος για το ορθογώνιο είτε η ακτίνα για τον κύκλο και το αστέρι. Όσον αφορά τα σύνθετα σχήµατα η δεσµευµένη λέξη που θα υποδεικνύει ότι το σχήµα δεν είναι απλό θα είναι η CompShape ακολουθούµενη από ένα αριθµό που θα είναι ο αριθµός των σχηµάτων που το αποτελούν. Έτσι το πρόγραµµα όταν γίνει το φόρτωµα του αρχείου θα ξέρει ότι οι επόµενες τέσσερις γραµµές (παραδείγµατος χάριν) θα είναι στοιχεία ενός σύνθετου αντικειµένου και θα µπορεί να τις χειριστεί ανάλογα. Κατά το φόρτωµα του αρχείου το µόνο που χρειάζεται το πρόγραµµα να κάνει είναι να διαβάζει αυτό το αρχείο ( το οποίο θα είναι σε format.ge ) και να ενηµερώνει δοµές οι οποίες κρατάνε τα στοιχεία του σχεδίου που έχει αποθηκευτεί. Επίσης ο χρήστης θα µπορεί να φορτώσει ένα νέο canva µέσω µιας λειτουργίας new. Αυτή η λειτουργία δεν θα σβήνει το ήδη υπάρχον σχεδιαστικό περιβάλλον αλλά θα δηµιουργεί παράλληλα µε το προηγούµενο ένα καινούργιο. 4. Περιγραφή Κλάσεων που Υλοποιούνται 4.1 Graphic Editor Η συγκεκριµένη κλάση είναι η αρχική κλάση του προγράµµατος η οποία περιέχει την main( ). Επίσης περιέχει και την init( ) η οποία είναι υπεύθυνη για την δηµιουργία του jframe, που θα περιέχει τα components ( τα οποία είναι ο canvas, το toolbar και το menubar ). Το toolbar και το menubar θα δηµιουργούνται σε δύο µεθόδους addmenubar και addbuttons. - 5 -

4.2 MyCanvas Η κλάση αυτή κάνει extend την κλάση Canvas της java. Έχει µια private µεταβλητή vector η οποία «κρατάει» όλα τα σχήµατα τα οποία έχει σχεδιάσει ο χρήστης. Ακόµη κρατάει τα copied και τα deleted αντικείµενα έτσι ώστε να µπορεί και να τα επικολλήσει και να τα επαναφέρει µετά από την διαγραφή τους. Ακόµη µέσω µιας µεταβλητής mode ελέγχει ποία λειτουργία έχει επιλέξει ο χρήστης να εκτελέσει. Τέλος οι µεταβλητές strpoint και endpoint είναι το σηµείο που πατήθηκε για πρώτη φορά το mouse και το σηµείο που αφέθηκε, αντίστοιχα. Καταρχήν θα υπάρχουν δύο constructors οι οποίοι δηµιουργούν είτε ένα κενό canva είτε φορτώνουν ένα παλιό σχέδιο το οποίο έχει γίνει save. Επίσης υπάρχει µια inner class MouseHandler (η οποία κάνει extend την MouseInputAdapter) και είναι υπεύθυνη για το χειρισµό των εισόδων από το ποντίκι. Έχει ένα accessor Load( ) που είναι τύπου MyCanvas και ουσιαστικά παίρνει σαν είσοδο ένα string και φορτώνει αυτό το αρχείο. Υπάρχει επίσης η µέθοδος Save( ) η οποία είναι υπεύθυνη για να αποθηκεύσει το vector που περιέχει τα σχήµατα. Επίσης υπάρχει η µέθοδος setcopied( ) η οποία περιέχει το αντικείµενο το οποίο έχει αντιγραφεί. Υπάρχει αντίστοιχα η getcopied( ) η οποία επιστρέφει το αντεγραµµένο σχήµα και η iscopied() η οποία είναι Boolean και ελέγχει εάν υπάρχει κάποιο copied αντικείµενο. Η µέθοδος additem( ) προσθέτει ένα σχήµα στο Vector µε τα σχήµατα που είναι ζωγραφισµένα στον canva.η deleteitem( ) σε αντιστοιχία καλεί την removeelement για να σβήσει ένα σχήµα από το Vector. Τέλος η pushitem( ) και η undelete( ) ουσιαστικά χειρίζονται µια στοίβα η οποία κρατάει τα αντικείµενα τα οποία έχουν διαγραφεί. Η δοµή µας είναι LIFO διότι το πρώτο στοιχείο το οποίο επαναφέρεται είναι αυτό που έχει διαγραφεί τελευταίο. 4.3 Mode Η κλάση mode είναι υπεύθυνη να αναγνωρίζει τις λειτουργίες που θάλει να εκτελέσει ο χρήστης µέσω των κουµπιών. Όταν δηλαδή ένα κουµπί πατηθεί τότε πρέπει να καλεσθεί η enablemode( ) ( η οποία παίρνει σαν όρισµα ένα ακέραιο ) έτσι ώστε να πάρει µια µεταβλητή τέτοια τιµή που θα µας υποδηλώνει τι λειτουργία πρέπει να εκτελεσθεί. Η µεταβλητή αυτή είναι private και για το λόγο αυτό υπάρχει µια µέθοδος η οποία επιστρέφει την τιµή της, η getmode( ). Ακόµη η κλάση έχει τη µέθοδο disablemode( ) η οποία καλείται όποτε ολοκληρωθεί µια λειτουργία και το µόνο που κάνει είναι να θέτει τη µεταβλητή µηδέν (το µηδεν υποδηλώνει ότι καµµιά λειτουργία δεν είναι σε εξέλιξη και το πρόγραµµα περιµένει να πατηθεί κάποιο κουµπί). - 6 -

4.4 MyButton Η κλάση MyButton κάνει implement την ActionListener( ) και ουσιαστικά το µόνο που κάνει είναι ανάλογα µε το ποίο κουµπί πατήθηκε να καλεί την enablemode() µε το κατάλληλο όρισµα. 4.5 MyShape (interface) Το interface αυτό που υλοποιούµε έχει καταρχήν την µέθοδο contains( ) η οποία ελέγχει εάν ένα ορθογώνιο το οποίο δίνουµε σαν όρισµα περιέχει ένα σχήµα. Η µέθοδος getbounds( ) επιστρέφει το µικρότερο ορθογώνιο το οποίο περικλείει το σχήµα µας ( το οποίο µπορεί να είναι είτε κάποιο από τα βασικά σχήµατά µας είτε µπορεί να είναι ένα σύνθετο σχήµα). Η Move( ) απλά αλλάζει την µεταβλητή του σχήµατος που σχετίζεται µε την θέση του µέσα στον canva ( για το ορθογώνιο το πάνω αριστερά σηµείο και για τον κύκλο το κέντρο ). Η Copy( ) καλεί την setcopied() µέθοδο και θέτει το συγκεκριµένο σχήµα copied και η iscopied( ) ελέγχει το κατά πόσο ένα σχήµα είναι copied. Αντίστοιχα η Paste( ) ελέγχει εάν υπάρχει copied αντικείµενο και εάν η απάντηση είναι θετική καλεί την additem( ) kai αντιγράφει το σχήµα στη περιοχή αυτή του canva έτσι ώστε το κέντρο του νέου σχήµατος και το σηµείο που πατήθηκε ο κέρσορας να συµπίπτουν. H delete( ) καλεί την deleteitem( ) για να αποµακρύνει το σχήµα από το vector και την pushitem( ) για να το προσθέσει στην στοίβα µε τα διεγραµµένα αντικείµενα. Τέλος η Group( ) αφαιρεί από το vector τα δύο σχήµατα ( το this και αυτό που περνάει σαν παράµετρος) και προσθέτει ένα νέο σύνθετο σχήµα το οποίο περιέχει αυτά τα δύο. 4.6 AbstractShape Η κλάση αυτή υλοποιεί τo interface MyShape. Είναι πατέρας όλων των σχηµάτων και κάποιες µεθόδοι της θα πρέπει να επαναοριστούν σε καθένα από αυτά ξεχωριστά. 4.7 MyLine MyRectangle - MyCircle - MyStar CompShape MySquare Οι κλάσεις αυτές επαναορίζουν τις µεθόδους της πατρικής τους κλάσης AbstractShape. Η CompShape υλοποιεί και µια ακόµη µέθοδο, την ungroup() η οποία αποσυνθέτει το σύνθετο σχήµα στα στοιχεία που το αποτελούν. Επίσης αξίζει να σηµειωθεί ότι η MySquare είναι υποκλάση της MyRectangle µε τον περιορισµό (invariant) ότι το width και το height πρέπει να είναι ίσα. - 7 -

Παρακάτω παρουσιάζονται και σχηµατικά όλες οι κλάσεις, οι σχέσεις µεταξύ τους καθώς και οι επικοινωνία που έχουν. - 8 -