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

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

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

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

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

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

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

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

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

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

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

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

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
05.11.2009, 11:28:31
    #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
05.11.2009, 13:18:31
    #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]