#!/usr/bin/newlisp

; lines.lsp - L.M. July 2006

(load "postscript.lsp")

; Background
(ps:goto 0 0)
(ps:fill-color 0.0 0.0 0.0)
(ps:shape '((0 792) (90 612) (90 792) (90 612)) true)

; abanico
(ps:line-color  0.4 0.4 0.4)
(ps:line-width 1.0)
(ps:angle 0)
(dotimes (i 45)
	(ps:goto 0 0)
	(ps:draw 1000)
	(ps:turn 2))

; Bands
(ps:goto 40 792)
(ps:angle 90)
(ps:line-color  1 0 0)
(ps:fill-color 0 1 0)
(ps:shape '(
	(40 10 80 5 120 0)
	(40 -10 80 -5 120 0)
	(40 10 80 5 120 0)
	(40 -10 80 -5 120 0)
	(40 10 80 5 120 0)
	(40 -10 80 -5 120 0)
	(40 10 80 5 120 0)
	(90 20)
	(90 20)
	(40 10 80 5 120 0)
	(40 -10 80 -5 120 0)
	(40 10 80 5 120 0)
	(40 -10 80 -5 120 0)
	(40 10 80 5 120 0)
	(40 -10 80 -5 120 0)
	(40 10 80 5 120 0)
	(40 -10 80 -5 120 0)
) true)

; Wall pattern
(ps:angle 0)
(ps:line-width 1.5)
(ps:line-color  0 0 1)
(dotimes (r 28)
	(ps:goto 80 (* r 30))
	(dotimes (i 3)
		(ps:bezier 30 50 -20 50 20  0)
		(ps:bezier 30 -50 -20 -50 20  0)
	)
)

; Dragon
(ps:goto 350 390)
(ps:line-color  1.0 0.8 0)
(ps:angle 0)
(define (dragon sign level)
  (if (= 0 level)
   (ps:draw 3)
   (begin
    (dec level)
    (ps:turn (sign 45))
    (dragon - level)
    (ps:turn (* -1 (sign 90)))
    (dragon + level)
    (ps:turn (sign 45)))))

(dragon + 13)

; Rose
(ps:goto 370 180)
(ps:line-color  1 0 0.6)
(ps:line-width 3.0)
(ps:angle 15)
(dotimes (i 12)
	(ps:turn 30)
	(ps:bezier -20 75 40 75 20 0))

(ps:goto 500 320)
(ps:line-color  1 0 0.0)
(ps:line-width 2.0)
(ps:angle 7.5)
(dotimes (i 18)
	(ps:turn 20)
	(ps:bezier -10 60 20 10 10 0))

; Signature
(ps:line-color 0.5 0.5 0.5)
(ps:goto 425 10)
(ps:angle 90)
(ps:font "Helvetica" 10)
(ps:text "made with newLISP and postscript.lsp")

(ps:render)

(exit)



syntax highlighting with newLISP and syntax.cgi