|
|
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
Господа, кто-нить знает простой алгоритм нахождения длины строки в пикселях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 11:11:13 |
|
||
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
Злой Стрелок, сумма длин символов от 0 до i (не включая i), где i - количество символов. Какой вопрос, такой и ответ. О каком ЯП хотя бы идет речь?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 11:35:59 |
|
||
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
Злой Стрелок wrote: > Господа, кто-нить знает простой алгоритм нахождения длины строки в пикселях? Вообще, вопрос этот далеко не простой. Лучший способ -- это вывести строку и получить потом её охватывающий прямоугольник. Во многих граф. библиотеках есть специальные вызовы для этого, имитирующие вывод строки и возвращающие прямоугольник (или область), которую строка\ занимает. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 12:19:00 |
|
||
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
an0nymсумма длин символов от 0 до i (не включая i), где i - количество символов.В общем случае - неверно. Например, для курсивных шрифтов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 21:33:44 |
|
||
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
miksoftan0nymсумма длин символов от 0 до i (не включая i), где i - количество символов.В общем случае - неверно. Например, для курсивных шрифтов. Впрочем и для обычных тоже. Строка одной и той же длины будет содержать символов "i" раза в 3 больше, чем например символов "о". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 21:47:48 |
|
||
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
miksoftan0nymсумма длин символов от 0 до i (не включая i), где i - количество символов.В общем случае - неверно. Например, для курсивных шрифтов. В общем случае верно. :) Имелось в виду (длина_1 + длина_2 + ... + длина_N), где длина_I - длина i-того символа в пикселях. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 22:01:42 |
|
||
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
an0nymmiksoftan0nymсумма длин символов от 0 до i (не включая i), где i - количество символов.В общем случае - неверно. Например, для курсивных шрифтов. В общем случае верно. :) Имелось в виду (длина_1 + длина_2 + ... + длина_N), где длина_I - длина i-того символа в пикселях. :) А как же кернинг ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 22:05:17 |
|
||
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
an0nym, вот вам контрпример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 22:16:18 |
|
||
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
Злой СтрелокГоспода, кто-нить знает простой алгоритм нахождения длины строки в пикселях? Можно использовать метод MeasureString: Задаются строка, длина которой измеряется, и шрифт, которым эта строка написана. Возвращает размер прямоугольника в пикселях, который занимает эта строка по высоте и ширине. Размер по ширине и будет длина строки в пикселях. На vb.net это выглядит так: Dim textSize As SizeF = G.MeasureString("stroka", font) (G - это объект GRAPHICS, на котором отрисовывается stroka) Свойство textSize.Width - длина строки в пикселях. На том языке, который Вы используете, тоже наверняка есть что-то подобное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 09:46:47 |
|
||
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
an0nym wrote: > В общем случае верно. :) Имелось в виду (длина_1 + длина_2 + ... + Да нет, в общем случае неверно, потому что неверно. Межсимвольные интервалы могут варьироваться в общем случае как угодно. В частности, их можно сжимать или расширять (разреженный шрифт). К тому же межсимвольный интервал зависит от сочетания двух соседних букв, а не только от шрифта в целом. А есть ещё лигатуры, тройные лигатуры, и ещё очень много всего. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 10:25:01 |
|
||
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
Вот например как я определяю горизонтальную позицию текста при создании документа Word из Visual Basic: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 11:28:31 |
|
||
|
длина строки в пикселях
|
|||
|---|---|---|---|
|
#18+
MasterZiv an0nym wrote: > В общем случае верно. :) Имелось в виду (длина_1 + длина_2 + ... + Да нет, в общем случае неверно, потому что неверно. Межсимвольные интервалы могут варьироваться в общем случае как угодно. В частности, их можно сжимать или расширять (разреженный шрифт). К тому же межсимвольный интервал зависит от сочетания двух соседних букв, а не только от шрифта в целом. А есть ещё лигатуры, тройные лигатуры, и ещё очень много всего. А есть еще куча ЯП, алгоритмов и вариаций шрифтов и вообще различий в терминологии, что считать символом, что строкой, что длиной символа и так далее - и всё это может повлиять на алгоритм. Если кто-то еще не понял, ответ Код: plaintext Простой - это как? Строка - это что конкретно? Это вообще хоть символов строка? Алгоритм нахождения длины строки - это что конкретно? Это ему конкретную функцию конкретного ЯП назвать? Или абстрактный способ поиска длины абстрактной строки из абстрактных символов? Так он его может ни на одном из ЯП не сможет реализовать... И я ответил напрямую на вопрос так, как смог его понять - простой, значит без всяких курсивов, кернингов и пр., алгоритм - значит не готовая функция, а как ее приготовить, строка - вероятно символов. Зато тут появились какие-то левые ребята и начали цитировать функции конкретных ЯП. :) MasterZiv, вы, наверное, единственный, кто ответил более менее в тему первым постом. miksoft, пример хороший, но алгоритм просили для простого случая - курсив я за простоту не считаю. :) Но дело даже не в этом - вы могли считать иначе и имели право меня поправить. :) Vowk вообще даже не удосужился прочитать мой пост, а уже попытался возразить - что для строки oiiiiiiiiiiiiiiiiiiiiiiia, что для ommmmmmma, если не учитывать кернинг, курсив и др. "сложности", всё посчитается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 13:18:31 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36290935&tid=1344127]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 349ms |

| 0 / 0 |
