如何找到光泽文本图片的宽度?

use*_*733 5 haskell gloss

在 Haskell Gloss 库中,我们使用 Picture 类型的 Text 构造函数来绘制文本。但是,如何找到这样一张图片的宽度(和高度)呢?

Jos*_*ica 1

以下是 Gloss 中文本的渲染方式:

        Text str
         -> do
                GL.blend        $= GL.Disabled
                GL.preservingMatrix $ GLUT.renderString GLUT.Roman str
                GL.blend        $= GL.Enabled
Run Code Online (Sandbox Code Playgroud)

这里重要的一点是它调用renderString. 查看 的文档renderString,我们立即看到另外两个有用的函数:stringWidthfontHeight。因此,您可以像这样获取宽度和高度:

import Graphics.UI.GLUT.Fonts

do
    width <- stringWidth Roman str
    height <- fontHeight Roman
Run Code Online (Sandbox Code Playgroud)