1. 程式人生 > 其它 >C#中繪製三維模型的方法——面面拉伸

C#中繪製三維模型的方法——面面拉伸

技術標籤:三維模型繪製c#

C#中繪製三維模型的方法——面面拉伸

繪製三維模型時,先根據點畫出面,通過面與面之間的連線繪製出形體。適用於一些不規則的形體繪製,比如四稜錐,先計算出上下底面點的座標,即可以使用面面拉伸繪製出四稜錐。

      //初始化面容器
            List<CurveVector> curves = new List<CurveVector>();
            //初始化點容器並定義連線點
            List<DPoint3d> points1 = new List<DPoint3d>() { pnt1, pnt2, pnt3, pnt4, pnt5, pnt6, pnt7, pnt8 };
            List<DPoint3d> points2 = new List<DPoint3d>() { pnt1_, pnt2_, pnt3_, pnt4_, pnt5_, pnt6_, pnt7_, pnt8_ };
            //根據連線點繪製第一個面
            CurveVector curve1 = CurveVector.CreateLinear(points1, CurveVector.BoundaryType.Outer, false);
            //根據連線點繪製第二個面
            CurveVector curve2 = CurveVector.CreateLinear(points2, CurveVector.BoundaryType.Outer, false);
            //將繪製的面放到面容器裡
            curves.Add(curve1);
            curves.Add(curve2);
            //轉換為拉伸工具需要的型別
            DgnRuledSweepDetail date = new DgnRuledSweepDetail(curves, true);
            //拉伸形體
            SolidPrimitive sweepsolid = SolidPrimitive.CreateDgnRuledSweep(date);
            //將型別轉化為Element
            Bentley.DgnPlatformNET.Elements.Element sweepelement = Bentley.DgnPlatformNET.Elements.DraftingElementSchema.ToElement(Bentley.MstnPlatformNET.Session.Instance.GetActiveDgnModel(), sweepsolid, null);

            //將element型別轉化為elementholder
            //elementholder sweepelementholder = jyx_zyjc_clr.publicmethod.converttoelementholder(sweepelement.elementhandle);

            //holder.add(sweepelementholder);//新增形體