diff --git a/src/IFoxCAD.Cad/ExtensionMethod/PointEx.cs b/src/IFoxCAD.Cad/ExtensionMethod/PointEx.cs index c534be66a5897f288dc64ff8b86692fac4844813..d81a0f26ee0a88c6663cadb971db8ce55f4e7c66 100644 --- a/src/IFoxCAD.Cad/ExtensionMethod/PointEx.cs +++ b/src/IFoxCAD.Cad/ExtensionMethod/PointEx.cs @@ -42,5 +42,34 @@ public static double GetAngle(this Point2d startPoint, Point2d endPoint) return startPoint.GetVectorTo(endPoint).Angle; } + /// + /// 按对称轴镜像Point + /// + /// Point + /// 对称轴起点 + /// 对称轴终点 + public static Point3d Mirror(this Point3d point, Point3d startPoint, Point3d endPoint) + { + return point.TransformBy(Matrix3d.Mirroring(new Line3d(startPoint, endPoint))); + } + /// + /// 按对称面镜像Point + /// + /// Point + /// 对称平面 + public static Point3d Mirror(this Point3d point, Plane plane) + { + return point.TransformBy(Matrix3d.Mirroring(plane)); + } + + /// + /// 按对称点镜像Point + /// + /// Point + /// 对称点 + public static Point3d Mirror(this Point3d point, Point3d basePoint) + { + return point.TransformBy(Matrix3d.Mirroring(basePoint)); + } } \ No newline at end of file