Может ли кто-нибудь помочь мне с примерами некоторых голых, старых школьных 3d-методов в Delphi?Не использовать openGL или firemonkey или какую-либо внешнюю библиотеку (vanilla canvas coding).То, что я хочу сделать, - это иметь возможность вращать количество точек X вокруг общего оригинала.Из того, что я помню в старые времена, вы вычитаете слева направо (на 3-х точках) так, чтобы origo всегда было 0,0 - затем выполняете вычисления и, наконец, добавляете смещение левого / верхнего пикселя, чтобы получить фактические положения экрана.
Что мне нужно, так это набор небольших специальных подпрограмм, ala:
- RotateX (aValue: T3dpoint; degr: float): T3dPoint;
- RotateY (- / -)
- RotateZ (- / -)
Используя эти функции, довольно легко создать старый "вращающийся 3d куб" (8 баллов).
Кроме того, есть ли функции для определения видимых "граней"?Если я хочу заполненный векторный куб, тогда я предполагаю, что мне нужно извлечь видимые области (на основе расстояния / перекрытия?), Которые, в свою очередь, отображаются как число заполненных полигонов X?И они, несомненно, должны быть отсортированы по глубине, чтобы не возникало беспорядка.
например:
- PointsToFaces (const a3dObject: T3dPointArray): TPolyFaceArray;
- SortFaces (Const aFaces: TPolyFaceArray): TPolyFaceArray;
Любая помощь приветствуется!