delphi - 简单的 Delphi 3d 函数

标签 delphi graphics 3d freepascal fpc

有人可以帮我提供一些 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/

相关文章:

delphi - 什么解释了这种奇怪的 PeekMessage 行为(尝试处理完整的消​​息队列,过滤特定消息)?

delphi - 在 Delphi 7 中使用 TScreen

java - 使用自引用数组,多边形是不可见的

c++ - 在窗口中绘制位数组(rgb)

python - 开发简单的窗口 3D 建模应用程序的最佳模块?

delphi - GenoTechs GTSizer 组件

delphi - 我可以从 IDE 内部运行 Delphi EXE 而无需重新编译吗?

c++ - 我可以在进入 gpu 之前从视频游戏中记录图形数据吗?

ios - SceneKit:如何为同一个 OBJ 文件从 Google Poly 重新创建光照?

Java 3D Hello World - Jar 卡住