/// <summary> /// 两点绘制圆 /// </summary> /// <param name="db">图形数据库</param> /// <param name="point1">第一个电</param> /// <param name="point2">第二个点</param> /// <returns></returns> public static ObjectId AddCircleModeSpace(this Database db, Point3d point1, Point3d point2) { // 获取两点的中心点 Point3d center = point1.GetCenterPointBetweenTwoPoint(point2); // 获取半径 double radius = point1.GetDistanceBetweenTwoPoint(center); return(db.AddCircleModeSpace(center, radius)); }
/// <summary> /// 三点绘制椭圆 /// </summary> /// <param name="db">图形数据库</param> /// <param name="majorPoint1">长轴端点1</param> /// <param name="majorPoint2">长轴端点2</param> /// <param name="shortRadius">短轴的长度</param> /// <returns>ObjectId</returns> public static ObjectId AddEllipseToModeSpace(this Database db, Point3d majorPoint1, Point3d majorPoint2, double shortRadius) { // 椭圆圆心 Point3d center = majorPoint1.GetCenterPointBetweenTwoPoint(majorPoint2); // 短轴与长轴的比例 double ratio = 2 * shortRadius / majorPoint1.GetDistanceBetweenTwoPoint(majorPoint2); // 长轴的向量 Vector3d majorAxis = majorPoint2.GetVectorTo(center); Ellipse elli = new Ellipse(center, Vector3d.ZAxis, majorAxis, ratio, 0, 2 * Math.PI); return(db.AddEntityToModeSpace(elli)); }