Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как вывести текст, выкручивающийся по спирали из точки? [D6, WinME]


realSanek ©   (2006-03-15 22:16:00) 

Выложите пожалуйста пример.


Sapersky   (2006-03-16 11:25:00) [1]

В 3D-графике (OpenGL, DirectX) текст обычно выводится текстурированными полигонами. Если завернуть эти полигоны по спирали по формулам [1] - получится то, что нужно. Конкретно, для D3D есть такой класс CD3DFont - должен быть в составе примеров для DX8 SDK от Clootie ( http://www.clootie.ru)
Хотя может быть SetWorldTransform проще, не знаю, не пробовал.


wicked   (2006-03-16 10:39:00) [2]

ы-ы-ы, как тяжко то..... примеров не дам, но отрисую, как бы я решал такое....

имхо, проблему лучше разделить на 2 - как вывести тескт вдоль любой произвольной полилинии/кривой и как построить эту кривую, чтоб она на спираль была похожа....
1-е - задачка сложная, но увлекательная и имеет множество способов решения...... например, SetWorldTransform (NT/2k/XP only) или CreateFontIndirect, GetGlyphOutline и GetCharacterPlacement, либо использовать что-то наподобие freetype ( http://www.freetype.org)
2-е - одно из решений уже показали...


WondeRu   (2006-03-16 09:12:00) [3]

Вот моя программа 10-летней давности:
SCREEN 12: CLS : f = 0
WINDOW (-5000, 4000)-(5000, -4000)
WHILE INKEY$ = ""
FOR i = 1 TO 6000 STEP 5
PSET (i * COS(i + f), i * SIN(i + f)), i MOD 16
NEXT i
FOR i = 1 TO 6000 STEP 5
PSET (i * COS(i + f), i * SIN(i + f)), 0
NEXT i
f = f - 36
WEND
END


алгоритм ясен, делай по аналогии


Наверх

Титульная страница Поиск, карта сайта Написать письмо