[英]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.