Может ли кто-нибудь помочь мне с примерами некоторых голых, старых школьных 3D-методов в Delphi? Без использования openGL, firemonkey или какой-либо внешней библиотеки (ванильное кодирование холста). Что я хочу сделать, так это иметь возможность вращать X точек вокруг общего ориго. Из того, что я помню со старых времен, вы вычитаете слева направо (в 3-х точках), так что origo всегда равно 0,0, затем выполняете вычисления и, наконец, добавляете смещение левого/верхнего пикселя, чтобы получить фактические положения экрана.
То, что я ищу, - это набор небольших специальных процедур, например:
- RotateX(aValue:T3dpoint; degr:float):T3dPoint;
- ПовернутьY(--/--)
- ПовернутьZ(--/--)
Используя эти функции, должно быть довольно легко создать старый «вращающийся 3D-куб» (8 баллов).
Также есть ли функции для выяснения видимых "лиц"? Если мне нужен заполненный векторный куб, то, думаю, мне нужно извлечь видимые области (на основе расстояния/перекрытия?), Которые, в свою очередь, отрисовываются как X число заполненных полигонов? И они, без сомнения, должны быть отсортированы по глубине, чтобы не получить беспорядок.
например:
- PointsToFaces (const a3dObject: T3dPointArray): TPolyFaceArray;
- SortFaces(Const aFaces:TPolyFaceArray):TPolyFaceArray;
Любая помощь приветствуется!
real
, а неfloat
. - person Andreas Rejbrand   schedule 12.02.2012