任何人都可以帮我解决Delphi中一些裸体,旧式3D方法的例子吗?不使用openGL或firemonkey或任何外部库(vanilla canvas编码).我想要做的是能够围绕共同的原点旋转X个点.从我以往的记忆中,你从左边减去(在3d点上),使origo始终为0,0 – 然后执行计算,最后添加左/上像素偏移以获得实际的屏幕位置.
我正在寻找的是一套小型的临时例程,ala:
> RotateX(aValue:T3dpoint; degr:float):T3dPoint;
>旋转Y( – / – )
> RotateZ( – / – )
使用这些功能,创建旧的“旋转三维立方体”(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:平移,旋转,缩放,视图变换,齐次坐标,剪切,投影,向量,矩阵等…
你可以找到一个 list of graphic projects.
2D/3D Lab Vector graphics:平移,旋转,缩放,视图变换,齐次坐标,剪切,投影,向量,矩阵等…