如何根据矩形宽度计算文本之间的间距?

时间:2018-12-18 10:33:02

标签: lua directx draw

我想问你,如何计算文本位置,更像是文本之间的空格。

我有一个包含文本text1,text2,text3,text4 ...的数组。我可以调用一个函数来获取以像素为单位的文本长度,我也知道矩形的长度,我想计算每个文本之间的空格完全填充了矩形,并且两边仅保持10px。

获取文本长度的函数是dxGetTextWidth,并且在名为rWidth的变量中指定了矩形宽度。

如何计算?

1 个答案:

答案 0 :(得分:0)

文本对齐算法可以满足您的需求。 https://www.rose-hulman.edu/class/csse/csse221/200910/Projects/Markov/justification.html

以下是基于您的问题的示例:

local output_width = 0
local line_width = box.rWidth() - 20 --10px from each side

local line = {}

for text in ipairs(texts) do
    text_width = text.dxGetTextWidth()

    if (output_width + text_width <= line_width) then
        output_width = output_width + text_width
        line[#line + 1] = text

    else
        remaining_space = line_width - output_width
        space_width = remaining_space / #line       --space evenly spread over words in the line
        for text in ipairs(line) do
            --now add the space between each word
        end
    end
end