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的结构来制作“制作图片并制作矩形”吗?

最佳做法是提供一个可复制的小示例。你能从你的例子中删去一点(更多?)的污点吗?