繁体   English   中英

使用GDI,GDI +和Delphi在3D空间中绘制图像

[英]Draw image in 3D space with GDI, GDI+ and Delphi

我需要使用Delphi XE3编写一个小应用程序以在TCanvas上绘制图像。 我从DXF文件读取了此图像,所以我知道文件名,关于X和Y轴的比例以及3D空间旋转以及X,Y和Z轴(有关更多详细信息,请参见此处 )。

该图像是位图,因此我可以使用TBitmap加载它。 我的问题是:我找不到在2个方向上缩放并在“空间”(旋转)上绘制的正确函数。

如果可能,我需要同时使用GDI和GDI +。

可能您的问题是将3D坐标转换为2D。 我认为您可以从此答案中使用以下两个例程:

function RotateAroundXAxis(const P: TPoint3D; Alfa: Double): TPoint3D;
begin
  Result.X := P.X;
  Result.Y := P.Y * Cos(Alfa) + P.Z * Sin(Alfa);
  Result.Z := P.Y * -Sin(Alfa) + P.Z * Cos(Alfa);
end;

function RotateAroundYAxis(const P: TPoint3D; Beta: Double): TPoint3D;
begin
  Result.X := P.X * Cos(Beta) + P.Z * Sin(Beta);
  Result.Y := P.Y;
  Result.Z := P.X * -Sin(Beta) + P.Z * Cos(Beta);
end;

实际上,该答案涉及更多3D内容,并且可以处理GDI和GDI +:它可以提供您需要了解的所有信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM