/// <summary> /// Retourne une ligne qui est tournée de l'angle donné /// </summary> /// <param name="angle">Angle de rotation</param> /// <param name="rotationCenter">Centre de rotation, si null (0, 0) est utilisé</param> /// <returns>Droite tournée de l'angle donné</returns> public Line Rotation(AngleDelta angle, RealPoint rotationCenter = null) { RealPoint p1, p2; if (rotationCenter == null) { rotationCenter = Barycenter; } if (_c == 1) { p1 = new RealPoint(0, _a * 0 + _b); p2 = new RealPoint(1, _a * 1 + _b); p1 = p1.Rotation(angle, rotationCenter); p2 = p2.Rotation(angle, rotationCenter); } else { p1 = new RealPoint(_b, 0); p2 = new RealPoint(_b, 1); } return(new Line(p1, p2)); }
/// <summary> /// Retourne un segment qui est tournée de l'angle donné /// </summary> /// <param name="angle">Angle de rotation</param> /// <param name="rotationCenter">Centre de rotation, si null (0, 0) est utilisé</param> /// <returns>Segment tourné de l'angle donné</returns> public new Segment Rotation(AngleDelta angle, RealPoint rotationCenter = null) { if (rotationCenter == null) { rotationCenter = Barycenter; } return(new Segment(_startPoint.Rotation(angle, rotationCenter), _endPoint.Rotation(angle, rotationCenter))); }
/// <summary> /// Retourne un cercle qui est tourné de l'angle donné /// </summary> /// <param name="angle">Angle de rotation</param> /// <param name="rotationCenter">Centre de rotation, si null le barycentre est utilisé</param> /// <returns>Cercle tourné de l'angle donné</returns> public Circle Rotation(AngleDelta angle, RealPoint rotationCenter = null) { if (rotationCenter == null) { rotationCenter = Barycenter; } return(new Circle(_center.Rotation(angle, rotationCenter), _radius)); }