Arkadaşlar merhaba, aşağıdaki kodlarla ilk başta üç nokta girip bunlardan bir liste oluşturuyorum. Daha sonra girdiğim yeni noktadan , önceki noktalara line çizmek için aşağıdaki kodları yazdım ama while kısmında sanırım yazım yanlışı yapıyorum. Hata nerede acaba?
Şimdiden teşekkür ederim.
Kod:
(defun c:mst()
(setq liste nil
i 0
y 0)
(setq a1 (getpoint "\nİlk Nokta.."))
(setq liste (cons a1 liste))
(setq a2 (getpoint "\nİkinci Nokta.."))
(setq liste (cons a2 liste))
(setq a3 (getpoint "\nÜçüncü Nokta.."))
(setq liste (cons a3 liste))
(command "_.line" a1 a2 a3 a1 "")
(setq new (getpoint "\nYeni Nokta.."))
(setq liste (cons new liste))
(setq y (length liste))
(setq i 0)
(while (< i (- y 1))
(command "_.line" (nth i liste) (nth (- y 1) liste) "")
(setq i (+ i 1))
)
)
Listeye yeni bir eleman eklendiğinde bu listenin sonuna değilde ilk elemanı olarak eklendiği için istediğimi gerçekleştiremiyormuşum. Reverse komutu ile yapmak istediğimi yapabildim.
Kod:
(defun c:mst()
(setq liste nil
i 0
y 0)
(setq a1 (getpoint "\nİlk Nokta.."))
(setq liste (cons a1 liste))
(setq a2 (getpoint "\nİkinci Nokta.."))
(setq liste (cons a2 liste))
(setq a3 (getpoint "\nÜçüncü Nokta.."))
(setq liste (cons a3 liste))
(command "_.line" a1 a2 a3 a1 "")
(while
(setq new (getpoint "\nYeni Nokta.."))
(setq liste (cons new liste))
(setq y (length liste))
(setq listson (reverse liste))
(setq m (- y 1))
(setq i 0)
(while (< i m)
(command "_.line" (nth i listson) (nth m listson) "")