AutoCAD.NET创建对象之绘制圆

来源:互联网 发布:数据库系统原理 pdf 编辑:程序博客网 时间:2024/06/05 06:40
        ///<summary>        ///由圆心和半径创建圆        ///</summary>        ///<param name="cenPt">圆心</param>        ///<param name="radius">半径</param>        ///<returns>圆</returns>        public static Circle Circle(Point3d cenPt, double radius)        {            return new Circle(cenPt, Vector3d.ZAxis, radius);        }
        ///<summary>        ///由两点(Point3d)创建圆        ///</summary>        ///<param name="pt1">第一点</param>        ///<param name="pt2">第二点</param>        ///<returns>圆</returns>        public static Circle Circle(Point3d pt1, Point3d pt2)        {            Point3d cenPt = new Point3d((pt1.X + pt2.X) / 2.0, (pt1.Y + pt2.Y) / 2.0,(pt1.Z + pt2.Z) / 2.0);            double radius = pt1.DistanceTo(pt2) / 2.0;            return new Circle(cenPt, Vector3d.ZAxis, radius);        }
        ///<summary>        ///由三点(Point3d)创建圆        ///</summary>        ///<param name="pt1">点1</param>        ///<param name="pt2">点2</param>        ///<param name="pt3">点3</param>        ///<returns>过三点的圆</returns>        public static Circle Circle(Point3d pt1, Point3d pt2, Point3d pt3)        {            Vector3d va = pt1.GetVectorTo(pt2);            Vector3d vb = pt1.GetVectorTo(pt3);            if (va.GetAngleTo(vb) == 0 | va.GetAngleTo(vb) == Math.PI)            {                return new Circle();            }            else            {                CircularArc3d geoArc = new CircularArc3d(pt1, pt2, pt3);                Point3d cenPt = new Point3d(geoArc.Center.X, geoArc.Center.Y, 0);                double radius = geoArc.Radius;                return new Circle(cenPt, Vector3d.ZAxis, radius);            }        }
0 0
原创粉丝点击