翻譯|使用教程|編輯:李顯亮|2020-08-19 15:53:35.170|閱讀 212 次
概述:本系列教程整理了VectorDraw Developer Framework(VDF)最常見問題,教程整理的很齊全,非常適合新手學(xué)習(xí)。本文將會介紹如何在非XY平面中創(chuàng)建多邊形剖面線。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
VectorDraw Developer Framework(VDF)是一個用于應(yīng)用程序可視化的圖形引擎庫。有了VDF提供的功能,您可以輕松地創(chuàng)建、編輯、管理、輸出、輸入和打印2D和3D圖形文件。該庫還支持許多矢量和柵格輸入和輸出格式,包括本地PDF和SVG導(dǎo)出。
點擊下載VectorDraw Developer Framework
問:如何在非X / Y平面中創(chuàng)建多邊形剖面線?
答:創(chuàng)建剖面線時,多曲線和剖面線應(yīng)在X / Y平面中,因此,如果在SAME中有折線,但在X / Y平面中沒有,則需要將它們“帶”到X / Y平面,然后創(chuàng)建多邊形線讓他們回到飛機上。參照以下代碼:
private void Test() { vdDocument doc = vdFramedControl.BaseControl.ActiveDocument; doc.New(); #region create 2 random polylines // 我們將使用兩個圓,以便從中獲得一些隨機的點來創(chuàng)建折線。 vdCircle cir1 = new vdCircle(doc, new gPoint(3, 2), 5); vdCircle cir2 = new vdCircle(doc, new gPoint(3, 2), 2); Vector vec = new Vector(0.3, 0.7, -0.2); vec.Normalize(); cir1.ExtrusionVector = vec; cir2.ExtrusionVector = vec; // 在同一個“隨機”平面上產(chǎn)生了兩個圓 //從中得到一些點,從而“擁有”兩條折線 gPoints pts1 = cir1.geomMeasure(7); // 第1折線的點 gPoints pts2 = cir2.geomMeasure(4); // 第2折線的點 #endregion Matrix mat = new Matrix(); // 這是這些圓所屬的平面的矩陣 mat.SetToViewDirection(vec, 0.0d); Matrix invmat = new Matrix(mat.GetInvertion()); // 為多邊形創(chuàng)建曲線 vdPolyline pl = new vdPolyline(doc, pts1); // 矢量應(yīng)垂直于折線所在的平面,也可用CalculateNormal3P計算,如: Vector vec2 = new Vector(); Vector.CalculateNormal3P(pl.VertexList[0] as gPoint, pl.VertexList[1] as gPoint, pl.VertexList[2] as gPoint, out vec2); // 在這個例子中,我們已經(jīng)從圓中得到了它,正如我們在上面設(shè)置的那樣。 pl.ExtrusionVector = vec; pl.Flag = VdConstPlineFlag.PlFlagCLOSE; pl.Transformby(mat); // 我們需要把這些點放到X/Y平面上 pl.Update(); VectorDraw.Professional.vdCollections.vdCurves curves_Outer = new VectorDraw.Professional.vdCollections.vdCurves(); curves_Outer.AddItem(pl); pl = new vdPolyline(doc, pts2); pl.ExtrusionVector = vec; pl.Flag = VdConstPlineFlag.PlFlagCLOSE; pl.Transformby(mat); pl.Update(); // 我們需要把這些點放到X/Y平面上 VectorDraw.Professional.vdCollections.vdCurves curves_Inside = new VectorDraw.Professional.vdCollections.vdCurves(); curves_Inside.AddItem(pl); //'創(chuàng)建polyhatch vdPolyhatch onehatch = new vdPolyhatch(doc); onehatch.PolyCurves.AddItem(curves_Outer); onehatch.PolyCurves.AddItem(curves_Inside); onehatch.HatchProperties = new VectorDraw.Professional.vdObjects.vdHatchProperties(VectorDraw.Professional.Constants.VdConstFill.VdFillModeSolid); onehatch.Transformby(invmat); // 把它帶到圓所在的平面上。 doc.Model.Entities.AddItem(onehatch); //只是為了顯示的原因添加圓圈。沒有必要添加它們 cir1.PenColor.FromSystemColor(Color.Red); cir2.PenColor.FromSystemColor(Color.Red); doc.Model.Entities.AddItem(cir1); doc.Model.Entities.AddItem(cir2); doc.CommandAction.Zoom("E", 0, 0); }以上問答,如果您有任何的疑惑都可以在評論區(qū)留言,我們會及時回復(fù)。此系列的問答教程我們會持續(xù)更新,如果您感興趣,可以多多關(guān)注本教程。
熱門文章推薦:
=======================================================
如果您對想要購買正版授權(quán)VectorDraw Developer Framework(VDF),可以聯(lián)系咨詢相關(guān)問題。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn