/// <summary> /// gets a circle withe the two points A and B as end and startpoint with a orientation and /// keeps the center. /// </summary> /// <param name="_A">Start point</param> /// <param name="_B">End point</param> /// <param name="ClockWise">sense of the circle</param> public virtual void SetBorder(xyz _A, xyz _B, bool ClockWise) { double ra = aRadius; double rb = bRadius; Arc = new Arc(Center.toXY(), Radius, Arc.getAngle(Base.Relativ(_A).toXY()), Arc.getAngle(Base.Relativ(_B).toXY()), ClockWise); aRadius = ra; bRadius = rb; }
/// <summary> /// a constructor with: Center, aRadius, bRadius, Alfa, Beta and ClockWise; /// </summary> /// <param name="Center"><see cref="Center"/></param> /// <param name="ARadius"><see cref="aRadius"/></param> /// <param name="BRadius"><see cref="bRadius"/></param> /// <param name="Alfa"><see cref="Alfa"/></param> /// <param name="Beta"><see cref="Beta"/></param> /// <param name="Base">the base of the circle3d. <see cref="Base"/></param> /// <param name="ClockWise"><see cref="ClockWise"/></param> public Circle3D(Base Base, xyz Center, double ARadius, double BRadius, double Alfa, double Beta, bool ClockWise) : this() { this.Base = Base; Arc = new Arc(Center.toXY(), ARadius, BRadius, Alfa, Beta, ClockWise); }
/// <summary> /// Creates a Circle by tree points P,Q and R. /// </summary> /// <param name="P">First point</param> /// <param name="Q">Second point</param> /// <param name="R">Third point</param> /// <param name="Base">the base of the circle</param> public Circle3D(Base Base, xyz P, xyz Q, xyz R) { this.Base = Base; Arc = new Arc(P.toXY(), Q.toXY(), R.toXY()); }
/// <summary> /// Initializes <see cref="Alfa"/>=0 /// <see cref="Beta"/>=2PI /// <see cref="bRadius"/>=<see cref="aRadius"/>= Radius and /// so you get a full circle. /// </summary> public Circle3D(Base Base, xyz Center, double Radius) : this() { this.Base = Base; Arc = new Arc(Center.toXY(), Radius); }
/// <summary> /// defines <see cref="aRadius"/> and <see cref="bRadius"/> by keeping the ratio of aRadius and bRadius. /// The arc contains the point <b>Pt</b>. /// </summary> /// <param name="Pt">Point, which lies on the new arc.</param> public void SetRadiusbyPoint(xyz Pt) { Arc.SetRadiusbyPoint(Pt.toXY()); }