Scheme 如何在球拍中绘制分段列表?
这是我的密码Scheme 如何在球拍中绘制分段列表?,scheme,lisp,racket,Scheme,Lisp,Racket,这是我的密码 #lang racket (require racket/gui/base) (require racket/draw) ;vector (define (make-vect x y) (cons x y)) (define (xcor vect) (car vect)) (define (ycor vect) (cdr vect)) ;segment (define (make-segment p1 p2) (cons p1 p2)) (define (start-se
#lang racket
(require racket/gui/base)
(require racket/draw)
;vector
(define (make-vect x y) (cons x y))
(define (xcor vect) (car vect))
(define (ycor vect) (cdr vect))
;segment
(define (make-segment p1 p2) (cons p1 p2))
(define (start-segment seg) (car seg))
(define (end-segment seg) (cdr seg))
;george-vects
(define p1 (make-vect .25 0))
(define p2 (make-vect .35 .5))
(define p3 (make-vect .3 .6))
(define p4 (make-vect .15 .4))
(define p5 (make-vect 0 .65))
(define p6 (make-vect .4 0))
(define p7 (make-vect .5 .3))
(define p8 (make-vect .6 0))
(define p9 (make-vect .75 0))
(define p10 (make-vect .6 .45))
(define p11 (make-vect 1 .15))
(define p12 (make-vect 1 .35))
(define p13 (make-vect .75 .65))
(define p14 (make-vect .6 .65))
(define p15 (make-vect .65 .85))
(define p16 (make-vect .6 1))
(define p17 (make-vect .4 1))
(define p18 (make-vect .35 .85))
(define p19 (make-vect .4 .65))
(define p20 (make-vect .3 .65))
(define p21 (make-vect .15 .6))
(define p22 (make-vect 0 .85))
;george-lines
(define george-lines
(list (make-segment p1 p2)
(make-segment p2 p3)
(make-segment p3 p4)
(make-segment p4 p5)
;(make-segment p1 p6)
;(make-segment p5 p22)
(make-segment p6 p7)
(make-segment p7 p8)
;(make-segment p8 p9)
(make-segment p9 p10)
(make-segment p10 p11)
;(make-segment p11 p12)
(make-segment p12 p13)
(make-segment p13 p14)
(make-segment p14 p15)
(make-segment p15 p16)
;(make-segment p16 p17)
(make-segment p17 p18)
(make-segment p18 p19)
(make-segment p19 p20)
(make-segment p20 p21)
(make-segment p21 p22)
))
; make-picture
(define ( make-picture seglist )
(draw-line ()((lambda (rect)
(for-each
(lambda (segment)
(start-segment segment)
(end-segment segment))
seglist))))
;make-rectangle
(define (make-rectangle origin edge1 edge2)
(list origin edge1 edge2))
( define george ( make-picture george-lines ) )
( define origin ( make-vect 0 0) )
( define x-axis ( make-vect 730 0) )
( define y-axis ( make-vect 0 730) )
( define frame1 ( make-rectangle origin x-axis y-axis ) )
( define frame ( new frame% [ label " Paint ␣ Triangle "]
[ width 747]
[ height 769]) )
( define canvas ( new canvas% [ parent frame ]
[ paint-callback
( lambda ( cnavas dc )
(send dc set-pen red-pen )
(send dc set-brush no-brush )
(on-paint))]))
( define red-pen ( make-object pen% "RED" 2 'solid ) )
( define no-brush ( make-object brush% " BLACK " 'transparent ) )
( define dc ( send canvas get-dc ) )
; DEFINE CALLBACK PAINT PROCEDURE
(define (on-paint) (george frame1))
; MAKING THE FRAME VISIBLE
( send frame show #t )
这是一个将“乔治”引入“框架1”的程序。乔治是一张由电影片段列表制作的照片。这是我任务的第一步。但我不知道lisp的画
我应该把这些片段列成图片。但它不起作用。。。
我可以在“(定义(画图)(george frame1))”中获得一些关于george和frame1的结构来制作“制作图片并制作矩形”吗?最佳做法是提供一个可复制的小示例。你能从你的例子中删去一点(更多?)的污点吗?