Главная страница
    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.48 MB
Время: 0.067 c
2-1273431911
FIL-23
2010-05-09 23:05
2010.08.27
как пользоваться sql


15-1270110574
12
2010-04-01 12:29
2010.08.27
Загадка. Что в имени тебе моем?


11-1219344430
Dy1
2008-08-21 22:47
2010.08.27
помогите плз с (KOL)ZIP


15-1275383564
boriskb
2010-06-01 13:12
2010.08.27
Образование в СССР


15-1273818579
bss
2010-05-14 10:29
2010.08.27
Иерархия классов настроек





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский