racket/collects/plot/demos/demo-10.ss
Eli Barzilay ed0974616b plot tests adjusted and passed
svn: r9769
2008-05-09 16:12:30 +00:00

26 lines
1.1 KiB
Scheme

#lang scheme
(require plot)
(require mzlib/class plot/plot-extend)
; (number -> number) mumbo-jumbo -> 2d-renderer
(define-plot-type dashed-line
fun 2dview (x-min x-max) ((samples 100) (segments 20) (color 'red) (width 1))
(let* ((dash-size (/ (- x-max x-min) segments))
(x-lists (build-list (/ segments 2)
(lambda (index)
(x-values
(/ samples segments)
(+ x-min (* 2 index dash-size))
(+ x-min (* (add1 ( * 2 index)) dash-size)))))))
(send* 2dview
(set-line-color color)
(set-line-width width))
(for-each (lambda (dash)
(send 2dview plot-line
(map (lambda (x) (vector x (fun x))) dash)))
x-lists)))
;
(plot (dashed-line (lambda (x) x) (color 'red)))
(plot3d (surface (lambda (x y) (* (sin x) (sin y)))))