Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (Constraint == VertexConstraint.Angle)
- {
- if ((crossProduct > 0 && Angle < 0) ||
- (crossProduct < 0 && Angle > 0))
- Angle = -Angle;
- if (Math.Abs(Angle - CalculateAngle()) > Constants.Eps)
- {
- Point RotatePoint(Point p, double angle, Point center)
- {
- double s = Math.Sin(angle);
- double c = Math.Cos(angle);
- double cx = center.X;
- double cy = center.Y;
- // translate point back to origin:
- p.X -= cx;
- p.Y -= cy;
- // rotate point
- double xnew = p.X * c - p.Y * s;
- double ynew = p.X * s + p.Y * c;
- // translate point back:
- p.X = xnew + cx;
- p.Y = ynew + cy;
- return p;
- }
- //if (PrevConstraint != SideConstraint.None || startVertex == Prev)
- // CorrectAngle(Prev, this, Next);
- //else if (Prev.PrevConstraint != SideConstraint.None && Next.NextConstraint != SideConstraint.None && startVertex != this)
- //{
- // void CorrentAngleThisPoint()
- // {
- // Vector delta = Point.Subtract(Next.ToPoint(), Prev.ToPoint()) / 2;
- // double tan = Math.Tan(Angle / 2);
- // Vector x = delta / tan;
- // double xProduct = (X - Prev.X) * (Next.Y - Prev.Y) - (Next.X - Prev.X) * (Y - Prev.Y);
- // if (xProduct < 0)
- // {
- // x.X *= -1;
- // x.Y *= -1;
- // }
- // delta.X += -x.Y;
- // delta.Y += x.X;
- // X = Prev.X + delta.X;
- // Y = Prev.Y + delta.Y;
- // }
- // CorrentAngleThisPoint();
- //}
- //else
- //{
- // Angle = -Angle;
- // CorrectAngle(Next, this, Prev);
- // Angle = -Angle;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement