我正在使用Racket GUI在程序窗口中编写文本。到目前为止,我只需要水平绘制文本。但是现在我也想垂直写文字。我在文档中看到,当我们向绘图环境发送消息“ 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))
但是,当我使用给定角度为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])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句