Racket GUI,垂直绘制文本,"angle" 参数有问题
Racket GUI, drawing text vertically, issues with "angle" argument
我正在使用 Racket GUI 在程序的 window 中写入文本。
到目前为止,我只需要水平绘制文本。但是现在我也想要竖排书写文字。我在文档中看到,当我们将消息 "draw-text" 发送到绘图上下文时,我们可以提供 "angle" 参数 。
这是我绘制文本的小函数:
(define (draw-text text fontsize x y color [rotate-angle 0.0])
(when (string? color)
(set! color (send the-color-database find-color color)))
(send bitmap-dc set-font (make-object font% fontsize 'default))
(send bitmap-dc set-text-foreground color)
(send bitmap-dc draw-text text x y [angle rotate-angle])
(update-callback))
但是,当我调用 "draw-text" 过程时,给定一个 90° 的角度(这样文本将是垂直的),它不会改变任何东西。
它只是像以前一样水平显示。
有人知道怎么回事吗?
例子看不太清楚,不过你记得把90度换算成弧度吗?惯例是 360 度等于 2pi 弧度。或者除以 360,我们得到 1 度是 2pi/360 弧度。
乘以90,结果是90度为90*2*pi/360 = 180pi/260 = pi/2 ~ 1.5707963267948966。也就是说,要将文本旋转 90 度,请使用 1.5707963267948966 作为旋转角度。
还有(send bitmap-dc draw-text text x y [angle rotate-angle])
应该是
(send bitmap-dc draw-text text x y combine? offset? angle])
例如:
(send bitmap-dc draw-text "A text" 100 100 #t 0 1.570])
我正在使用 Racket GUI 在程序的 window 中写入文本。 到目前为止,我只需要水平绘制文本。但是现在我也想要竖排书写文字。我在文档中看到,当我们将消息 "draw-text" 发送到绘图上下文时,我们可以提供 "angle" 参数 。
这是我绘制文本的小函数:
(define (draw-text text fontsize x y color [rotate-angle 0.0])
(when (string? color)
(set! color (send the-color-database find-color color)))
(send bitmap-dc set-font (make-object font% fontsize 'default))
(send bitmap-dc set-text-foreground color)
(send bitmap-dc draw-text text x y [angle rotate-angle])
(update-callback))
但是,当我调用 "draw-text" 过程时,给定一个 90° 的角度(这样文本将是垂直的),它不会改变任何东西。 它只是像以前一样水平显示。
有人知道怎么回事吗?
例子看不太清楚,不过你记得把90度换算成弧度吗?惯例是 360 度等于 2pi 弧度。或者除以 360,我们得到 1 度是 2pi/360 弧度。
乘以90,结果是90度为90*2*pi/360 = 180pi/260 = pi/2 ~ 1.5707963267948966。也就是说,要将文本旋转 90 度,请使用 1.5707963267948966 作为旋转角度。
还有(send bitmap-dc draw-text text x y [angle rotate-angle])
应该是
(send bitmap-dc draw-text text x y combine? offset? angle])
例如:
(send bitmap-dc draw-text "A text" 100 100 #t 0 1.570])