Funkce so:kresli_kruznici() -pomoc pro ztracené programátory

Ve funkci so:kresli_kružnici musíme nejprve získat a převést jednotlivé souřadnice středu kružnice z asociačního seznamu gl_pam_hodnoty. Nesmíme zapomenout rozdělit tečka dvojici klíč.hodnota a vzít z ní jen hodnotu. Tuto hodnotu musíme převést na reálné číslo.

Dále musíme zjistit a převést hodnoty poloměru kružnice, počtu kružnic a vzdálenosti mezi kružnicemi.Poté vytvoříme smyčku v které se bude vykreslovat kružnice.

Pro naprosto ztracené uživatele uvádíme programový kód celé funkce. Zdrojový kód funkce je možné nahrát v souboru SObjektyFINAL.lsp.

Vlastní kód funkce:

(defun so:kresli_kruznici (/ stred_kr polomer pol_kresl pocet vzdalenost)
         ;;; vykreslení kružnice
         ;;;; stred_kr - souř. středu (real.číslo, real.číslo, real.číslo)
         ;;;; polomer - real.číslo poloměr první kružnice
         ;;;; pol_kresl - real.číslo poloměr vykreslované kružnice
         ;;;; pocet - celé číslo počet kreslených soustředných kružnic
         ;;;; vzdalenost - real.číslo vzdálenost mezi kružnicemi

 (setq stred_kr
  (list
   (atof (cdr (assoc "stredkex" gl_pam_hodnoty)))
   (atof (cdr (assoc "stredkey" gl_pam_hodnoty)))
   (atof (cdr (assoc "stredkez" gl_pam_hodnoty)))
  )
 )
         ;;; převod řetězců souřadnic do proměnné stred 
         ;;; získání hodnot z asociačního seznamu gl_pam_hodnoty

 (setq polomer (atof (cdr (assoc "polomerke" gl_pam_hodnoty))))
         ;;; uložení hodnoty poloměru
 (setq pocet (atoi (cdr (assoc "pocetke" gl_pam_hodnoty))))
         ;;; počet kreslených kružnic
 (setq vzdalenost (atof (cdr (assoc "vzdalenostke" gl_pam_hodnoty))))
         ;;; vzdálenost mezi kružnicemi
 (command)                ;;; ukončení všech předchozích příkazů

 (while (> pocet 0)       ;;; dokud je co kreslit opakuj
  (setq pol_kresl (+ polomer (* vzdalenost (- pocet 1))))
         ;;; nastav aktuální poloměr
  (command "_circle" stred_kr pol_kresl)
         ;;; vykresli kružnici se středem stred_kr a poloměrem pol_kresl
  (setq pocet (- pocet 1))
         ;;; zmenši počet kružnic o 1
 )
)