philos Δημοσ. 9 Δεκεμβρίου 2014 Δημοσ. 9 Δεκεμβρίου 2014 Καλησπέρα παιδιά! Είναι μια εφαρμογή σε javascript που σχεδιάζει ο χρήστης με το ποντίκι ορθογώνια παραλληλόγραμμα. Δηλαδή ο χρήστης κάνει click σε ένα σημείο (x,y) και με κρατημένο το click, σύρει το ποντίκι και σχηματίζεται το σχήμα (width,height). Έστω λοιπόν ότι έχουμε σχεδιάσει τα δύο ακόλουθα στατικά/ήδη σχεδιασμένα rectangles (τα οποία δεν "συναντιούνται" στο χώρο ) : x1,y1,w1,h1 και x2,y2,w2,h2 (x και y οι συντεταγμένες του σημείου που ξεκινάει ο χρήστης - δλδ η πάνω αριστερή γωνία του rectangle και w το width και h το height του σχήματος). Ας πούμε λοιπόν ότι καθ όλη τη διάρκεια του σχεδιασμού του τρέχοντος παραλληλογράμμου, οι ακόλουθες μεταβλητές αλλάζουν συνεχώς και αφορούν το τρέχον σχήμα: x3,y3,w3,h3 Αυτό που θέλω να κάνω είναι να τρέχω έναν javascript κώδικα αν κατά τη διάρκεια του σχεδιασμού του τρέχοντος σχήματος, το τρέχον σχήμα "έλθει σε επαφή" με κάποιο από τα ήδη σχεδιασμένα σχήματα ή και με τα δύο. Πως μπορώ να το κάνω; Δε ξέρω τι συνθήκες να βάλω στην if () ώστε να την τοποθετήσω εκεί που ανανεώνονται συνέχεια οι x3,y3,w3,h3. Βασικά ο σκοπός είναι να μην είναι εφικτή η σχεδίαση ενός σχήματος πάνω σε ένα άλλο. Ευχαριστώ!
akis_fc Δημοσ. 9 Δεκεμβρίου 2014 Δημοσ. 9 Δεκεμβρίου 2014 Βασικά σκέψου ότι έχεις δεσμευμένα (έχεις ζωγραφίσει δλδ επάνω τους) όλα τα x>=x1 && x<=(x1+w1) για τα οποία όμως το y>=y1 && y <=(y1+h1). Αν καταλάβεις την παραπάνω λογική εύκολα θα βρεις την if σου.
albNik Δημοσ. 11 Δεκεμβρίου 2014 Δημοσ. 11 Δεκεμβρίου 2014 Πάντως τα x1,y1 μπορει να ειναι οποιαδήποτε απο τις 4 γωνιες αναλογα την κατευθυνση του ποντικιού. Καλυτερα να ξερεις την αρχικη και τελικη θεση του ποντικιόυ, A=(xa, ya) B= (xb, yb) Η πανω αριστερα γωνια ειναι S=(min(xa,xb), min(ya, yb)) και οι διαστασεις w=abs(xa-xb) h=abs(ya-yb)
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα