- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I am trying to draw Sierpinski triangles using LISP code (recursive) and LINE command. The code ran for order of 1 (m1 =1). But for higher order I am getting irregular pattern. Also, an error " error: bad function: 48 or 75 etc. etc." displayed on every run.
Here is my code:
;;;; Function for Sierpinski triangles
(defun drawtriangle1 (p1 p2 p3)
(command "line" p1 p2 p3 "c")
)
(defun sierpinski2 (t0 t1 t2 limit1)
(if (< 0 limit1)
(
(setq pax (/ (+ (car t0) (car t1)) 2))
(setq pay (/ (+ (cadr t0) (cadr t1)) 2))
(setq pbx (/ (+ (car t1) (car t2)) 2))
(setq pby (/ (+ (cadr t1) (cadr t2)) 2))
(setq pcx (/ (+ (car t2) (car t0)) 2))
(setq pcy (/ (+ (cadr t2) (cadr t0)) 2))
(setq pa (list pax pay))
(setq pb (list pbx pby))
(setq pc (list pcx pcy))
(sierpinski2 t0 pa pc (1- limit1))
(sierpinski2 pa t1 pb (1- limit1))
(sierpinski2 pc pb t2 (1- limit1))
);_end of if
(drawtriangle1 t0 t1 t2)
);_ end of if-else part
);_end of sierpinski2
;;;; Define the initial coordinates
(setq v0 (list 50 87))
(setq v1 (list 100 0))
(setq v2 (list 0 0))
(setq m1 2);_order of fractal
(defun c:st5 ()
(sierpinski2 v0 v1 v2 m1)
);_ end of st5 function
Regards,
Samim
Solved! Go to Solution.