1) 标题所说,当我调整窗口大小时,我绘制的对象会消失,但矩形保持不变。
2) 原点从左上角开始,但我希望它在左下角。
3) 我找不到缩放功能,除了在绘图库中以外,如果我想要实现这样的功能,一个选项是通过绘制更大的对象并刷新画布来进行“缩放”吗?
(define top-frame (new frame%
[label "KR"]
[width 500]
[height 500]))
;Make a frame by instantiating the frame% class
(define image (pict->bitmap (rectangle 50 50)))
(define canvas (new canvas%
[parent top-frame]
[paint-callback (lambda (canvas dc)
(send dc draw-bitmap image 0 0))]))
(define drawer (send canvas get-dc))
(send top-frame show #t)
; Show the frame by calling its show method
(define (draw-object x)
(sleep/yield 0.1)
(case (first x)
[("LINE") (send drawer draw-line
(second x) (third x)
(fourth x) (fifth x))]
[("CIRCLE") (send drawer draw-bitmap (pict->bitmap (circle (round (fourth x)))) (round (second x)) (round (third x)))]
[("POINT") (send drawer draw-point (round (second x)) (round (third x)))]
[else "Not drawing anything!"]))
(draw-object (find-specific-values (third list-of-objects)))
(map draw-object (map find-specific-values list-of-objects))
trans->vector
在哪里定义的?或者这是一个你应该编写的函数吗? - Peter(x,y)
转换为xnew = xx * x + xy * y + x0
和ynew = yx * x + yy * y + y0
。详见此处:https://github.com/soegaard/metapict/blob/master/metapict/trans.rkt - soegaard