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])