Une autre version avec un argument supplémentaire : le rapport entre le décalage en X et en Y (fixé à 10 dans le code ci dessus) pour permettre de jouer sur le rapport entre le segment long et le segment court (chanfrein).
;; Décrit un motif de hachueres "ardoises losange"
;;
;; Arguments
;; d : longueur des segments longs (REAL)
;; r : rapport entre le décalage en X et en Y du segment long (INT)
;|
Commande: (ardoisepat 0.32 20)
0, -0.023818333682,0, 0.250092503662,0.22627416998, 0.047636667364,-0.452548339959
225, 0,0, 0.336842105263,-0.016842105263, 0.32,-6.4
315, 0,0, 0.336842105263,0.016842105263, 0.32,-6.4
|;
(defun ardoisePat (d r / z a b c)
(setq z (getvar 'dimzin)
a (/ d (- r 1.))
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 (* r a) 2 12)
","
(rtos (- a) 2 12)
", "
(rtos d 2 12)
","
(rtos (* (- r) d) 2 12)
"\n315, 0,0, "
(rtos (* r a) 2 12)
","
(rtos a 2 12)
", "
(rtos d 2 12)
","
(rtos (* (- r) d) 2 12)
)
)
(setvar 'dimzin z)
(princ)
)