[alogo] Σπιροειδής τοποθέτηση πλακιδίων

Aλγόριθμος για την τοποθέτηση (παράθεση) M παραλληλόγραμμων με ένα σπιράλ τρόπο που εξυπηρετεί ως πρωτότυπο για την παράθεση.
0) M = 1, αντιστοιχεί στο πρωτότυπο, τοποθετημένο με το κέντρο βάρους του στο (0,0). x = οριζόντιος μετασχηματισμός, y = κατακόρυφος μετασχηματισμός.
1) M > 1. Εκινεί τον αλγόριθμο καθορίζοντας το μικρότερο n=2i+1 τέτοιο ώστε n^2 >= M.
2) εάν n^2 == M, τοποθέτηση του M-ου πλακιδίου (με το κέντρο βάρους του) στο (i*x, i*y).
3) εάν n^2 > M, τότε M1 = n^2-M-1, n1 = n-1, q = M1/n1 και r = M1 % n1 καθορίζουν την θέση του M-ου πλακιδίου ως εξής:
4) Το q λαμβάνει μια από τις τιμές 0, 1, 2, 3, που αντιστοιχούν στις πλευρές [άνω], [αριστερά], [κάτω], [δεξιά].
5) Ξεκινώντας με το πλακίδιο στο ((i-1)*x, i*y) τοποθετούμε αντι-ωρολογιακά τα πλακίδια σε μπλοκ των n1 πλακιδίων.
6) q = 0, X = (i-1-r)*x, Y = i*y ,
7) q = 1, X = - i*x, Y = (i-1-r)*y,
8) q =2, X = (r+1-i)*x , Y = -i*y,
9) q = 3, X = i*x, Y = (r+1-i)*y.

[0_0] [0_1]
[1_0] [1_1]


Ο προηγούμενος αλγόριθμος βρίσκει την θέση του Μ-ου πλακιδίου του επιπέδου, ο οποίος προχωρά με ένα σπιράλ τρόπο. Αυτός ο αλγόριθμος χρησιμοποιείται στο σκριπτ Εργαλείου Χρήστη [Tiling_Spiral.txt].


Produced with EucliDraw©