翻譯|使用教程|編輯:鮑佳佳|2021-06-10 11:42:45.460|閱讀 114 次
概述:VectorDraw Framework使用vdPolyFace或vdGroundSurface對象的MappedImages屬性導出了將圖像映射到這些對象的能力。這方面的例子可以在我們的AddEntities示例中找到。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
VectorDraw Developer Framework(VDF)是一個用于應用程序可視化的圖形引擎庫。有了VDF提供的功能,您可以輕松地創建、編輯、管理、輸出、輸入和打印2D和3D圖形文件。該庫還支持許多矢量和柵格輸入和輸出格式,包括本地PDF和SVG導出。
下載VectorDraw Developer Framework(VDF)最新版
VectorDraw Framework使用vdPolyFace或vdGroundSurface對象的MappedImages屬性導出了將圖像映射到這些對象的能力。這方面的例子可以在我們的AddEntities示例中找到。
如果你想在你的繪圖上映射一個單一的圖像,你可以使用下面的示例代碼。
假設我們有一個名稱為 "myimage.jpg "的圖像
同時我們有2個像素坐標系中的點,相對于圖像的左上角
例子
P1_pixel_x , P1_pixel_y
和
P2_pixel_x , P2_pixel_y
現在,我們有了一個要映射圖像的圖紙
vdDocument doc;//already defined VectorDraw Document object。 //為選中的像素點 構造gPoints gPoint imgp1 = new gPoint(P1_pixel_x , P1_pixel_y,0); gPoint imgp2 = new gPoint(P2_pixel_x, P2_pixel_y,0); //將imagedefinition添加到繪圖中 vdImageDef imagedef = doc.Images.Add("myimage.jpg" ); double Aspect =(double) imagedef .Height / (double)imagedef .Width;//width,所選圖像的高度(以像素為單位) //創建一個矩陣,將圖像的像素坐標轉換為 Unint 寬度矩陣 矩陣 pixeltoworld = new Matrix(); pixeltoworld.ScaleMatrix(1.0 / magedef .Width, -Aspect /imagedef .Height, 1.0d); pixeltoworld.TranslateMatrix(0.0, Aspect, 0.0); //將像素坐標轉換為單位世界坐標 imgp1 = pixeltoworld.Transform(imgp1); imgp2 = pixeltoworld.Transform(imgp2); vector offsrc = new Vector(imgp2 - imgp1);//源向量 Vector offdst =new Vector(P2_world -P1_world );//目標向量 double scale = offdst.Length / offsrc.Length; //計算映射圖像的最終變換矩陣 Matrix m2 = new Matrix(); m2.TranslateMatrix(imgp1 * -1); m2.ScaleMatrix(scale, scale, 1.0); m2.RotateZMatrix(offdst.Angle2DDirection() - offsrc.Angle2DDirection()); m2.TranslateMatrix(P1_world); //創建一個新的圖像引用所選的“myimage.jpg” vdImage img2 = new vdImage(doc); img2.ImageDefinition = imagedef ; img2.PenColor = new vdColor(Color.White, 100);//使圖像透明 img2.Transformby(m2);//將圖像變換到繪圖中的正確位置 doc.Model.Entities.AddItem(img2); //將圖像添加到模型繪圖實體 doc.Redraw(true);//強制重繪繪圖
=======================================================
如果您對想要購買正版授權VectorDraw Developer Framework(VDF),可以聯系咨詢相關問題。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: