Простые 3D-функции Delphi

Может ли кто-нибудь помочь мне с примерами некоторых голых, старых школьных 3D-методов в Delphi? Не использовать openGL, firemonkey или любую внешнюю библиотеку (кодирование ванильного холста). Что я хочу сделать, так это иметь возможность вращать X точек вокруг общего ориджина. Из того, что я помню из старых времен, вы вычитаете левое из правого (в трехмерных точках), так что ориджо всегда равно 0,0 - затем выполняете вычисления и, наконец, добавляете смещение левого / верхнего пикселя, чтобы получить фактическое положение экрана.

Я ищу набор небольших специальных подпрограмм, ala:

  • RotateX (aValue: T3dpoint; degr: float): T3dPoint;
  • RotateY (- / -)
  • RotateZ (- / -)

Используя эти функции, должно быть довольно легко создать старый «вращающийся трехмерный куб» (8 точек).

Кроме того, существуют ли функции для определения видимых «лиц»? Если мне нужен заполненный векторный куб, то я думаю, мне нужно извлечь видимые области (на основе расстояния / перекрытия?), Которые, в свою очередь, отображаются как X-количество заполненных многоугольников? И их, без сомнения, нужно отсортировать по глубине, чтобы не получился беспорядок.

например:

  • PointsToFaces (const a3dObject: T3dPointArray): TPolyFaceArray;
  • SortFaces (Const aFaces: TPolyFaceArray): TPolyFaceArray;

Любая помощь приветствуется!

7
задан Jon Lennart Aasenden 12 February 2012 в 18:55
поделиться