Как рассчитать расстояние между текстами по ширине прямоугольника? - PullRequest
0 голосов
/ 18 декабря 2018

Я хотел бы спросить вас, как рассчитать положение текста, больше похоже на пробелы между текстами.

Я получил массив с текстами text1, text2, text3, text4 ... И я могу вызватьфункция для получения длины текста в пикселях, и я также знаю длину прямоугольника, и я хотел бы рассчитать пробелы между каждым текстом, чтобы полностью заполнить прямоугольник и сохранить только 10px с обеих сторон.

Функция для получения длины текста - это dxGetTextWidth, а ширина прямоугольника указывается в переменной с именем rWidth.

Как ее вычислить?

1 Ответ

0 голосов
/ 18 декабря 2018

Алгоритм текстового обоснования может сделать то, что вы ищете.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
...