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

我想问一下,如何计算文本位置,更像是文本之间的间距。

我有一个包含文本 text1、text2、text3、text4 的数组。我可以调用一个函数以获取文本的像素长度,我也知道矩形的长度,我想计算每个文本之间的间距,以完全填充矩形,并仅保留两侧各10像素。

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

我如何计算它?

点赞
用户7396148
用户7396148

一种文本对齐算法可以实现您要求的功能。 https://www.rose-hulman.edu/class/csse/csse221/200910/Projects/Markov/justification.html

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

local output_width = 0
local line_width = box.rWidth() - 20 --每侧10px

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       --平均分配空间
        for text in ipairs(line) do
            --现在添加每个单词之间的空间
        end
    end
end
2018-12-18 20:55:01