有人可以帮我提供一些 Delphi 中简单的、老式的 3d 方法的例子吗?不使用 openGL 或 firemonkey 或任何外部库(普通 Canvas 编码)。我想要做的是能够围绕一个共同的原点旋转 X 个点。根据我过去的内存,您从右侧减去左侧(在 3d 点上),以便 origo 始终为 0,0 - 然后执行计算,最后添加左侧/顶部像素偏移以获得实际的屏幕位置。
我正在寻找的是一组小的、临时的例程,ala:
- RotateX(aValue:T3dpoint; degr:float):T3dPoint;
- 旋转Y(--/--)
- 旋转 Z(--/--)
使用这些函数,创建旧的“旋转 3d 立方体”(8 点)应该相当容易。
此外,是否有函数可以找出可见的“面孔”?如果我想要一个填充的矢量立方体,那么我想我需要提取可见区域(基于距离/重叠?),而这些区域又被绘制为 X 个填充多边形?毫无疑问,这些必须按深度排序,以免出现困惑。
例如:
- PointsToFaces(const a3dObject:T3dPointArray):TPolyFaceArray;
- SortFaces(Const aFaces:TPolyFaceArray):TPolyFaceArray;
欢迎任何帮助!
最佳答案
这里有一些很好的旧资源 Delphi Math来自efg's Reference .
您可以找到list of graphic projects .
2D/3D Lab Vector graphics :平移、旋转、缩放、 View 变换、齐次坐标、裁剪、投影、向量、矩阵等...
关于delphi - 简单的 Delphi 3d 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9251650/