Puisqu'il est question de LISP dans le titre du sujet, je n'ai pas pu résister.
Voici un LISP qui génère un motif de hachure pour des ardoises en losange en spécifiant la longueur des segments longs (d).
(defun ardoisePat (d / z a b c)
(setq z (getvar 'dimzin)
a (/ d 9.)
b (* a (sqrt 2.))
c (* d (sqrt 0.5))
)
(setvar 'dimzin 8)
(princ
(strcat
"0, "
(rtos (* -1 b) 2 12)
",0, "
(rtos (+ c b) 2 12)
","
(rtos c 2 12)
", "
(rtos (* 2 b) 2 12)
","
(rtos (* -2 c) 2 12)
"\n225, 0,0, "
(rtos (* 10 a) 2 12)
","
(rtos (- a) 2 12)
", "
(rtos d 2 12)
","
(rtos (* -10. d) 2 12)
"\n315, 0,0, "
(rtos (* 10 a) 2 12)
","
(rtos a 2 12)
", "
(rtos d 2 12)
","
(rtos (* -10. d) 2 12)
)
)
(setvar 'dimzin z)
(princ)
)
À lancer en ligne de commande (ou dans l'éditeur Visual LISP).
Commande: (ardoisepat 0.14)
0, -0.021998877637,0, 0.120993827003,0.098994949366, 0.043997755274,-0.197989898732
225, 0,0, 0.155555555556,-0.015555555556, 0.14,-1.4
315, 0,0, 0.155555555556,0.015555555556, 0.14,-1.4