chpmould 发表于 2010-12-1 21:00:09

绘制一个多边形函数

本帖最后由 chpmould 于 2010-12-2 07:30 编辑

请教老师:
如何绘制一个六边形。
谢谢狐哥! 问题已解决...



雪山飞狐_lzh 发表于 2010-12-1 21:32:52

      
      public static void Test2()
      {

            var db = HostApplicationServices.WorkingDatabase;
            var doc = Application.DocumentManager.GetDocument(db);
            var ed = doc.Editor;

            var resDbl = ed.GetDouble("\n输入六边形的高度:");
            if (resDbl.Status != PromptStatus.OK)
                return;

            //边长
            double a = resDbl.Value / Math.Pow(3, 0.5);

            using (var tr = db.TransactionManager.StartTransaction())
            {

                var pl = new Polyline();
                //以0,0为起点
                Point2d pt = Point2d.Origin;
                //按边长生成一个向量
                Vector2d vec = Vector2d.XAxis * a;

                for (int i = 0; i < 6; i++)
                {
                  pl.AddVertexAt(i, pt, 0, 0, 0);
                  //移动到下一个点
                  pt += vec;
                  //循环每步将向量旋转60度
                  vec = vec.RotateBy(Math.PI / 3);
                }
                pl.Closed = true;

                var btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
                btr.AppendEntity(pl);
                tr.AddNewlyCreatedDBObject(pl, true);

                tr.Commit();

            }
      }

chpmould 发表于 2010-12-1 21:42:58

谢谢狐哥:原来自带是没有多边形函数,需要计算得来。。。

stuwhh 发表于 2010-12-7 12:52:08

回复 lzh741206 的帖子

请问这个是不是要有ARX才行的呀?如果不在arx情况下,在C#情况下可以如何用addpolyline呢?菜鸟求助,谢谢

雪山飞狐_lzh 发表于 2010-12-7 13:05:51

com库的话直接看帮助里的VBA部分,或者VBA版有中文的翻译版
页: [1]
查看完整版本: 绘制一个多边形函数