-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexamples.lisp
More file actions
40 lines (35 loc) · 1.49 KB
/
examples.lisp
File metadata and controls
40 lines (35 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
(defpackage :cl-drawille/examples
(:use :common-lisp :cl-drawille)
(:export :turtle-example :basic-example))
(in-package :cl-drawille/examples)
(defun turtle-example ()
(let ((turtle (cl-drawille:make-turtle)))
(loop repeat 36
do (cl-drawille:right turtle 10)
(loop repeat 36
do (cl-drawille:right turtle 10)
(cl-drawille:forward turtle 8)))
(format t "~a~%" (cl-drawille:frame turtle))))
(defun basic-example ()
(let ((canvas (cl-drawille:make-canvas)))
(loop for x below 1800
do (cl-drawille:set-pixel canvas (/ x 10) (* 10 (sin (* (/ x 180) pi)))))
(format t "~a~%" (cl-drawille:frame canvas))
(cl-drawille:clear canvas)
(loop for x below 1800 by 10
do (cl-drawille:set-pixel canvas (/ x 10) (+ 10 (* 10 (sin (* (/ x 180) pi)))))
(cl-drawille:set-pixel canvas (/ x 10) (+ 10 (* 10 (cos (* (/ x 180) pi))))))
(format t "~a~%" (cl-drawille:frame canvas))
(cl-drawille:clear canvas)
(loop for x below 3600 by 20
do (cl-drawille:set-pixel canvas (/ x 20) (+ 4 (* 4 (sin (* (/ x 180) pi))))))
(format t "~a~%" (cl-drawille:frame canvas))
(cl-drawille:clear canvas)
(loop for x below 360 by 4
do (cl-drawille:set-pixel canvas (/ x 4) (+ 30 (* 30 (sin (* (/ x 180) pi))))))
(loop for x below 30
do (loop for y below 30
do (cl-drawille:set-pixel canvas x y)
(cl-drawille:toggle-pixel canvas (+ 30 x) (+ 30 y))
(cl-drawille:toggle-pixel canvas (+ 60 x) y)))
(format t "~a~%" (cl-drawille:frame canvas))))