Главная страница
    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.058 c
6-1216719811
GraySE
2008-07-22 13:43
2010.08.27
TWebBrowser. Доступ к заголовкам.


2-1273822922
Гном45
2010-05-14 11:42
2010.08.27
Прибавить месяц


15-1269466202
Юрий
2010-03-25 00:30
2010.08.27
С днем рождения ! 25 марта 2010 четверг


2-1267350234
Pavia
2010-02-28 12:43
2010.08.27
Отоброзить TStringList на экране.


15-1266509022
Копир
2010-02-18 19:03
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский