Интересует субж, как грамотно реализовать алгоритм?
в голову приходит: вычеслить допустимую длину которую можно отрисовать на строку, например длина блока 300 пикселей, длина символов 312,
далее обрезать в меньшую сторону по количеству слов, удалить пробелы заодно подсчитав их, вычтить из 300пикселей пробелы*ширина пробела,
вычеслить оступ = остаток разделить на количество слов-1, рисовать слово оступ и т.д.
Есть попроще вариант?
Птьхы, странный какой.
Размер текстового поля ВСЕГДА известен заранее, причём он измеряется в тех же величинах, что и ширина буков. Далее мы "рисуем" наши буквы из строки в некую виртуальную функцию, которая только и делает, что считает общую ширину конечной строки. Ну а дальше всё просто:
делим ширину экрана на два, делим ширину строки на два, отнимаем половину ширины строки от половины ширины экрана. Получившееся значение - x, это точка, с которой надо начинать рисование строки.
Будет точно по центру.
Капец молодеж пошла, простейшие алгоритмы рассчитать не могёт.
ну ладно яб понял, если бы скажем реализовать табуляцию. О то чего - строку по ширине выровнять не могут.
Дядя Миша писал: Птьхы, странный какой.
Размер текстового поля ВСЕГДА известен заранее, причём он измеряется в тех же величинах, что и ширина буков. Далее мы "рисуем" наши буквы из строки в некую виртуальную функцию, которая только и делает, что считает общую ширину конечной строки. Ну а дальше всё просто:
делим ширину экрана на два, делим ширину строки на два, отнимаем половину ширины строки от половины ширины экрана. Получившееся значение - x, это точка, с которой надо начинать рисование строки.
Будет точно по центру.
Капец молодеж пошла, простейшие алгоритмы рассчитать не могёт.
ну ладно яб понял, если бы скажем реализовать табуляцию. О то чего - строку по ширине выровнять не могут.
мне текст по ширине нужно выравнять, а у тебя это центрирование.
в html это align=justify
qpAHToMAS писал: А аккуратно его растянуть по всей ширине поля
Это глупо, просто некрасиво смотрится.
Но в целом тоже достаточно просто реализуется: ширина, которую надо заполнить (в пикселях) равно общая ширина поля минус ширина текста.
Всё в пикселях. Фиксированный промежуток для пробела между буквами равен кол-ву букву минус кол-во пробелов умноженное на два, поскольку нам надо отделять пробелы между словами от пробелов между буквами, призванными создать эффект разрежения. Впрочем данный коэфициент подбирается строго эмпирическим путём, чтобы артёмий татьяныч не сказал про ужасный кёрнинг. Ну и конечно проверить полученный код на проблему неучтённой еденицы.