![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вывести текст, выкручивающийся по спирали из точки? [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
алгоритм ясен, делай по аналогии