簡體   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