Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Надпись вдоль кривой (например по окружности)   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.047 c
3-1239559848
Александр Степанов
2009-04-12 22:10
2010.08.27
Проблема с подключением к базе FireBird


15-1267432925
boa_kaa
2010-03-01 11:42
2010.08.27
ПМП, а?


15-1265198569
Андрей Прокопенко
2010-02-03 15:02
2010.08.27
"Немыслимое что-то..."


6-1221106295
Boooze
2008-09-11 08:11
2010.08.27
psock file not found


15-1268173375
Германн
2010-03-10 01:22
2010.08.27
Паранойя или троешники?