From 6114@dktc11.BITNET Tue Feb  7 22:46:46 1989
Received: by korppi.tut.fi (4.0/10.6.master) id AA13101; Tue, 7 Feb 89 22:46:45 +0200
Message-Id: <8902072046.AA13144@kaarne.tut.fi.tut.fi>
From: 6114@dktc11.BITNET
Received: by fintut Tue Feb  7 22:46:56
	from mailer@ohstvma.BITNET via Urep 3.2 PUNCH.
Received: by OHSTVMA (Mailer X1.25) id 5603; Tue, 07 Feb 89 15:30:02 EST
Date:         Tue, 7 Feb 89 15:29:17 EST
Reply-To: AUTOCAD Autocad Discussion List <AUTOCAD@OHSTVMA>
Sender: AUTOCAD Autocad Discussion List <AUTOCAD@OHSTVMA>
X-Original-From: 6114@DKTC11
To: jja@fintut.BITNET
X-Original-To: jari ahola <jja@fintut> 

;  FILE: 4LROSE.LSP
;  If you are none familiar with starting lisp-progs from acad:
;  1. start acad
;  2. begin new drawing
;  3. at the command prompt, type: (load"4LROSE")
;  4. to start 4lrose, type: 4LROSE
;  5. ...program is running
;
;
;       Display four-leaved rose
;
;       Designed and implemented by Kelvin R. Throop on 1985 January 85
;                                   (Hans Ostergard <6114@DKTC11>)
;       (cspiral <# rotations> <base point> <growth per rotation>
;                <points per circle>)
;
(defun c4lrose (ntimes bpoint cfac lppass / ang dist tp ainc dinc circle bs cs)
        (setq cs (getvar "cmdecho"))
        (setq bs (getvar "blipmode"))
        (setvar "blipmode" 0)
        (setvar "cmdecho" 0)
        (setq circle (* 3.141596235 2))
        (setq ainc (/ circle lppass))
        (setq dinc (/ cfac lppass))
        (setq ang 0.0)
        (setq dist 0.0)
        (command "pline" bpoint)
        (repeat ntimes
           (repeat lppass
              (setq tp (polar bpoint (setq ang (+ ang ainc))
                          (setq dist ( * cfac (sin (* ang 2)) ) )))
;edit above here for other equa. This is, r = sin(2*ang), example:
;                         (setq dist ( * cfac (sin (* ang 3)) ) )))
              (command tp)
           )
        )
        (command)
        (setvar "blipmode" bs)
        (setvar "cmdecho" cs)
        nil
)
;
;       Interactive four-leaved rose generation
;
(defun C:4LROSE ( / nt bp cf lp)
        (prompt "\nCentre point: (use 0,0) ")
        (setq bp (getpoint))
        (prompt "\nNumber of rotations: (use 1) ")
        (setq nt (getint))
        (prompt "\nFactor: (use 1) ")
        (setq cf (getint))
        (prompt "\nPoints per rotation: (aprx 50) ")
        (setq lp (getint))
        (cond ((null lp) (setq lp 30)))
        (c4lrose nt bp cf lp)
)


