Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
2-1266915505
Irisss
2010-02-23 11:58
2010.08.27
Получить ip удаленного ПК


15-1264628812
Алексей111
2010-01-28 00:46
2010.08.27
пуассоновский поток


11-1216886396
rainstuff
2008-07-24 11:59
2010.08.27
Отключение дисплея


15-1274965860
bss
2010-05-27 17:11
2010.08.27
DevExpress -> cxGrid, регистронезависимые фильтры


2-1267706424
Novicheck
2010-03-04 15:40
2010.08.27
Скопировать 10 символов до зяпятой





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский