Форум: "Media";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизНадпись вдоль кривой (например по окружности) Найти похожие ветки
← →
DimaTS (2007-11-29 12:05) [0]Хочу сделать subj. Пробовал разные способы по наитию, но всё как-то криво, или относительно линии скачут буквы, или интервал между ними не соблюдается. Не подскажите ли способ или компонент для реализации. Спасибо...
← →
Сергей М. © (2007-11-29 15:09) [1]Похоже у тебя с геометрией проблемы.
← →
MBo © (2007-11-29 15:49) [2]в msdn есть пример, но ссылки не помню
← →
DimaTS (2007-11-30 16:58) [3]Сергей, с геометрией-то нормально, с TTF хуже.
А ты только ерничать умеешь, или есть реальная помощь?
← →
Сергей М. © (2007-12-01 11:40) [4]
> с геометрией-то нормально
Сомневаюсь.
> ерничать умеешь
Умею. А ты только "по наитию" умеешь ? Или Гуглём тоже ?)
← →
DimaTS (2007-12-03 16:31) [5]Вот из-за таких мудозвонов я и стараюсь не посещать форумы.
Тема закрыта, бзди сколько хочешь, меня тут больше не будет, ЧМО!
← →
Сергей М. © (2007-12-03 16:47) [6]Оказывается, у тебя не только с геометрией проблемы)
← →
MetalFan © (2007-12-11 09:34) [7]
> Сергей М. © (03.12.07 16:47) [6]
ага, к психиатру бы... )))
← →
@!!ex © (2007-12-12 09:25) [8]> ага, к психиатру бы... )))
Не... Ну мне тоже к психиатру надо, но чтоб на людей на форуме бросаться... Это уже лишнее. :)
← →
shlst (2007-12-12 14:18) [9]вот такое впечателние производят на обычных людей форумы,
может тут угарный газ какой нибудь? придышались кто сидит, а новым людям не продохнуть..
>Сергей М. ©
Вы победил этого недостойного новичка, о сергей))))
← →
@!!ex © (2007-12-12 14:25) [10]> [9] shlst (12.12.07 14:18)
> вот такое впечателние производят на обычных людей форумы,
>
> может тут угарный газ какой нибудь? придышались кто сидит,
> а новым людям не продохнуть..
Хм. Мне в свое время такой наезд Сергея помог осознать некоторые вещи. :)
← →
klesha28 (2008-03-13 20:22) [11]Чтобы появилась возможность гуглить надо хоть иногда отвечать на вопросы.
А то напрягает - гуглишь-гуглишь, а ответы - "пойди погугли"...
2 DimaTS:
Для написания текста по кривой необходимо каждый символ выводить по-отдельности. А перед выводом каждого символа создавать фонт - это нужно из-за того, что там каждый раз указывается необходимый угол наклона. Вывод символа - любой WinAPI функцией, рисующей текст - после SelectObject с указателем на созданный фонт.
Пример (попробуй в OnRepaint для формы):
var
s: string; //тут будет строка для вывода
fnt: HFont; //указатель на создаваемый фонт для каждого символа
FontName: string;
FontSize: integer;
i: integer; //для цикла по строке
f, a: single; // для подсчета кривизны и наклона
begin
SetBkMode(self.Canvas.Handle, TRANSPARENT); //симолы будут врисовыватся без собственного фона
SetTextAlign(self.Canvas.Handle, TA_CENTER or VTA_CENTER); //выравнивание символов по их центру
FontName := "Tahoma";
FontSize := 50;
s := "Строка по кривой. Длинная. Блаблаблабла-бла-бла. Бла.";
for i := 1 to Length(s) do
begin
f := sin(DegToRad(i*20))*50; // 20 --> "частота", 50 --> амплитуда
a := (cos(DegToRad(i*20)))*500; // 500 --> от балды
// создадим фонт - необходимо ради одной-единственной штуки - наклон символа:
fnt := CreateFont(
-FontSize, //размер шрифта. :) Постоянно забываю - с минусом это в пунктах, или в пикселах...
0, //ширина символа
round(-a), //УГОЛ НАКЛОНА - градусы умноженное на 10 (450 = 45гр)
0,
0, //толщина
0, //наклонные - не путать с углом наклона (см.выше)
0, //подчеркнутые
0, //перечеркнутые
DEFAULT_CHARSET,
0,
0,
5, //Качество прорисовки (5 = ClearType - нет константы в Delphi 7 и ниже)
DEFAULT_PITCH,
PChar(FontName) );
SelectObject(self.Canvas.Handle, fnt); //применяем созданный фонт к контексту
self.Canvas.TextOut(i*(FontSize div 2), round(f)+100, s[i]); //рисуем символ
DeleteObject(fnt); //не забываем освобождать
end;
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.061 c