![]() |
|
![]() ![]() ![]() |
|
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
hello уважаемые.
как бы мне решить вот такую вот задачку: есть строка состоящая из букв цифр и знаков препинания, есть название шрифта (Times..)и размер шрифта в пикселях (12). также известно общее число знаков в строке. как определить размер этой строки в пикселях? Помоему существует зависимость между высотой букв (размер шрифта ) и их длинной : 3/4 если не ошибаюсь(нужно ваше уотчнение). Но этого недостаточно.......если в слове появляются знаки препинания - значение размера подсчитаного через такую зависимость сильно не совпадает . Не хотелось бы городить город сложными алгоритмами посдсчёта отдельного размера каждого символа: как бы так попроще: хелп. Это сообщение отредактировал(а) v2v - 22.8.2008, 19:09 |
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 1 Всего: 39 |
Есть реализации, типа Java`вской FontMetrics. Можешь ее глянуть, исходники вроде есть.
Это сообщение отредактировал(а) Alexandr87 - 22.8.2008, 20:56 |
|||
|
||||
aleksh |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: нет Всего: 13 |
когда-то сталкивался с подобной задачей, в итоге пошел обходным путем (уже не помню каким, вспомню отпишу). проблема в том, что в киреллице есть такие буквы как "ю, ш, щ, ы" -- они очень сильно портят попытки подсчета, ибо шире остальных, да и вывод на экран (ведь для этого нужно длинну высчитать?) вносит свои коррективы, проще "зарезервировать место с запасом", иначе, как мне видется, городить город таки придется
|
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
ну раз уж шрифт не моноширинный (если я правильно понял), то можно поскладывать ширину всех символом, возможно, добавив межбуквенное расстояние
а вообще, лучше бы указать, на какой платформе такая задача возникла, какие библиотеки доступны - тогда перенесу в соответствующий раздел, и, возможно, там ответят быстрее -------------------- qqq |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
DsKTY |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 8.8.2007 Репутация: нет Всего: нет |
Если нет нужды в 100% точности до пикселя, можно попробовать взять текст, по структуре подобный тому который используется в строке, подсчитать среднюю длину символа и потом просто умножать колл-во символов в строке на полученную среднюю ширину.
|
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
DsKTY, чтобы понять чему подобен по структуре имеющийся текст, надо его весь по буквам просмотреть. Ну а если так, то что нам мешает при этом посчитать точную длину?
Хотя может я вас не так понял? -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
DsKTY |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 8.8.2007 Репутация: нет Всего: нет |
Ну вот к примеру текст из вашей подписи, разбитый на 2 части: "Ничто так не развивает аналитическое мышление, как" и "отладка сложной программы без возможности пошагового выполнения (с)". Первая часть содержит 50 символов и имеет длину 313 пикселей. Вторая часть содержит 67 символов и имеет длину 418 пикселей. Т.е. средняя ширина букв для первой части будет 6.28px, для правой - 6.23.
Если принять за коэффициент 6.28, то длина второй части получится 420px, если наоборот, то длина первой части будет 311.5px. Т.е как уже писал выше, способ годится, если нет нужды вычислять длину с 100% точностью, и допустима небольшая разбежка. Под "подобной структурой" я понимал, что текст по которому высчитывается коэффициент, не должен содержать слишком много коротких или длинных символов. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |