powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / длина строки в пикселях
12 сообщений из 12, страница 1 из 1
длина строки в пикселях
    #36289940
Господа, кто-нить знает простой алгоритм нахождения длины строки в пикселях?
...
Рейтинг: 0 / 0
длина строки в пикселях
    #36289995
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Стрелок,

сумма длин символов от 0 до i (не включая i), где i - количество символов.

Какой вопрос, такой и ответ. О каком ЯП хотя бы идет речь?)
...
Рейтинг: 0 / 0
длина строки в пикселях
    #36290054
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Стрелок wrote:

> Господа, кто-нить знает простой алгоритм нахождения длины строки в пикселях?

Вообще, вопрос этот далеко не простой.
Лучший способ -- это вывести строку и получить потом
её охватывающий прямоугольник. Во многих граф. библиотеках
есть специальные вызовы для этого, имитирующие вывод строки
и возвращающие прямоугольник (или область), которую строка\
занимает.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
длина строки в пикселях
    #36290894
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymсумма длин символов от 0 до i (не включая i), где i - количество символов.В общем случае - неверно. Например, для курсивных шрифтов.
...
Рейтинг: 0 / 0
длина строки в пикселях
    #36290916
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftan0nymсумма длин символов от 0 до i (не включая i), где i - количество символов.В общем случае - неверно. Например, для курсивных шрифтов.
Впрочем и для обычных тоже. Строка одной и той же длины будет содержать символов "i" раза в 3 больше, чем например символов "о".
...
Рейтинг: 0 / 0
длина строки в пикселях
    #36290930
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftan0nymсумма длин символов от 0 до i (не включая i), где i - количество символов.В общем случае - неверно. Например, для курсивных шрифтов.
В общем случае верно. :) Имелось в виду (длина_1 + длина_2 + ... + длина_N), где длина_I - длина i-того символа в пикселях. :)
...
Рейтинг: 0 / 0
длина строки в пикселях
    #36290935
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymmiksoftan0nymсумма длин символов от 0 до i (не включая i), где i - количество символов.В общем случае - неверно. Например, для курсивных шрифтов.
В общем случае верно. :) Имелось в виду (длина_1 + длина_2 + ... + длина_N), где длина_I - длина i-того символа в пикселях. :) А как же кернинг ?
...
Рейтинг: 0 / 0
длина строки в пикселях
    #36290945
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nym,

вот вам контрпример.
...
Рейтинг: 0 / 0
длина строки в пикселях
    #36291252
dmitry_do
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой СтрелокГоспода, кто-нить знает простой алгоритм нахождения длины строки в пикселях?

Можно использовать метод MeasureString:
Задаются строка, длина которой измеряется, и шрифт, которым эта строка написана.
Возвращает размер прямоугольника в пикселях, который занимает эта строка по высоте и ширине.
Размер по ширине и будет длина строки в пикселях.

На vb.net это выглядит так:
Dim textSize As SizeF = G.MeasureString("stroka", font)
(G - это объект GRAPHICS, на котором отрисовывается stroka)

Свойство textSize.Width - длина строки в пикселях.

На том языке, который Вы используете, тоже наверняка есть что-то подобное.
...
Рейтинг: 0 / 0
длина строки в пикселях
    #36291343
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nym wrote:

> В общем случае верно. :) Имелось в виду (длина_1 + длина_2 + ... +

Да нет, в общем случае неверно, потому что неверно.
Межсимвольные интервалы могут варьироваться в общем случае
как угодно. В частности, их можно сжимать или расширять (разреженный
шрифт). К тому же межсимвольный интервал зависит от сочетания двух соседних
букв, а не только от шрифта в целом. А есть ещё лигатуры, тройные лигатуры,
и ещё очень много всего.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
длина строки в пикселях
    #36291576
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот например как я определяю горизонтальную позицию текста при создании документа Word из Visual Basic:
Код: plaintext
1.
2.
3.
4.
Private Function hpos() As Double
   Selection.Collapse wdCollapseEnd
   hpos = PointsToCentimeters(Selection.Information(wdHorizontalPositionRelativeToPage))
End Function
...
Рейтинг: 0 / 0
длина строки в пикселях
    #36292021
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
an0nym wrote:

> В общем случае верно. :) Имелось в виду (длина_1 + длина_2 + ... +

Да нет, в общем случае неверно, потому что неверно.
Межсимвольные интервалы могут варьироваться в общем случае
как угодно. В частности, их можно сжимать или расширять (разреженный
шрифт). К тому же межсимвольный интервал зависит от сочетания двух соседних
букв, а не только от шрифта в целом. А есть ещё лигатуры, тройные лигатуры,
и ещё очень много всего.


А есть еще куча ЯП, алгоритмов и вариаций шрифтов и вообще различий в терминологии, что считать символом, что строкой, что длиной символа и так далее - и всё это может повлиять на алгоритм.

Если кто-то еще не понял, ответ
Код: plaintext
сумма длин символов от  0  до i (не включая i), где i - количество символов. 
был чем-то вроде иронии на глупый (во всяком случае по моему мнению) вопрос: простой алгоритм нахождения длины строки в пикселях.

Простой - это как?
Строка - это что конкретно? Это вообще хоть символов строка?
Алгоритм нахождения длины строки - это что конкретно? Это ему конкретную функцию конкретного ЯП назвать? Или абстрактный способ поиска длины абстрактной строки из абстрактных символов? Так он его может ни на одном из ЯП не сможет реализовать...

И я ответил напрямую на вопрос так, как смог его понять - простой, значит без всяких курсивов, кернингов и пр., алгоритм - значит не готовая функция, а как ее приготовить, строка - вероятно символов.

Зато тут появились какие-то левые ребята и начали цитировать функции конкретных ЯП. :)

MasterZiv, вы, наверное, единственный, кто ответил более менее в тему первым постом.
miksoft, пример хороший, но алгоритм просили для простого случая - курсив я за простоту не считаю. :) Но дело даже не в этом - вы могли считать иначе и имели право меня поправить. :)
Vowk вообще даже не удосужился прочитать мой пост, а уже попытался возразить - что для строки oiiiiiiiiiiiiiiiiiiiiiiia, что для ommmmmmma, если не учитывать кернинг, курсив и др. "сложности", всё посчитается.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / длина строки в пикселях
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]