hans125
06.04.2006, 22:37
Zdravím, chtěl jsem se zeptat, jak v autolispu dostanu průsečík dvou přímek (nebo přímky a úsečky). Někde jsem našel, že by to měl dělat příkaz INTERS. V přiloženém kódu jsem zkoušel následující příkaz: (setq bodr (INTERS bod9 bod11 bod1 bod4)). Bod9 a bod11 leží na jedné přímce a bod1 a bod4 na druhé přímce. Ale nevypíše mi to průsečík. Nevíte, v čem by mohla být chyba?
Prográmek níže má sloužit k vykreslení krychle a proložit rovinu řezu- není to celý dokončený..
(defun krychle() (setq a(getreal "Zadej délku hrany krychle: ")) (setq bod1 (getpoint "Zadej počáteční bod: "))
(setq x1 (car bod1)) (setq y1 (cadr bod1)) (setq z1 (caddr bod1)) (setq x2 (+ x1 a)) (setq y2 (+ y1 a)) (setq z2 (- z1 a))
(setq x3 (+ x2 (/ a 2))) (setq X4 (+ x1 (/ a 2))) (setq z3 (- z1 (/ a 2)))
(setq bod2 (list x2 y1 z1)) (setq bod3 (list x2 y1 z2)) (setq bod4 (list x1 y1 z2)) (setq bod5 (list x1 y2 z1)) (setq bod6 (list x2 y2 z1)) (setq bod7 (list x2 y2 z2)) (setq bod8 (list x1 y2 z2))
(setq bod9 (list x3 y1 z1)) (setq bod10 (list x4 y2 z3)) (setq bod11 (list x4 y1 z3))
(setq bodr (INTERS bod9 bod11 bod1 bod4)) (setq x5 (car bodr)) (setq z5 (caddr bodr)) (setq bodz (list x5 y2 z5)) (command "_line" bod1 bod2 bod3 bod4 "") (command "_line" bod5 bod6 bod7 bod8 "") (command "_line" bod1 bod5 "") (command "_line" bod8 bod4 "") (command "_line" bod2 bod6 "") (command "_line" bod3 bod7 "") (command "_line" bod1 bod4 "") (command "_line" bod5 bod8 "")
(command "_xline" bod9 bod11 "") (command "_rectang" bod9 bodz "")
)
Prográmek níže má sloužit k vykreslení krychle a proložit rovinu řezu- není to celý dokončený..
(defun krychle() (setq a(getreal "Zadej délku hrany krychle: ")) (setq bod1 (getpoint "Zadej počáteční bod: "))
(setq x1 (car bod1)) (setq y1 (cadr bod1)) (setq z1 (caddr bod1)) (setq x2 (+ x1 a)) (setq y2 (+ y1 a)) (setq z2 (- z1 a))
(setq x3 (+ x2 (/ a 2))) (setq X4 (+ x1 (/ a 2))) (setq z3 (- z1 (/ a 2)))
(setq bod2 (list x2 y1 z1)) (setq bod3 (list x2 y1 z2)) (setq bod4 (list x1 y1 z2)) (setq bod5 (list x1 y2 z1)) (setq bod6 (list x2 y2 z1)) (setq bod7 (list x2 y2 z2)) (setq bod8 (list x1 y2 z2))
(setq bod9 (list x3 y1 z1)) (setq bod10 (list x4 y2 z3)) (setq bod11 (list x4 y1 z3))
(setq bodr (INTERS bod9 bod11 bod1 bod4)) (setq x5 (car bodr)) (setq z5 (caddr bodr)) (setq bodz (list x5 y2 z5)) (command "_line" bod1 bod2 bod3 bod4 "") (command "_line" bod5 bod6 bod7 bod8 "") (command "_line" bod1 bod5 "") (command "_line" bod8 bod4 "") (command "_line" bod2 bod6 "") (command "_line" bod3 bod7 "") (command "_line" bod1 bod4 "") (command "_line" bod5 bod8 "")
(command "_xline" bod9 bod11 "") (command "_rectang" bod9 bodz "")
)