private static bool FlatWithAccuracy2(Vertex2D v1, Vertex2D v2, Vertex2D vMid, float accuracy) { // compute double the signed area of the triangle (v1, vMid, v2) var dblArea = (vMid.X - v1.X) * (v2.Y - v1.Y) - (v2.X - v1.X) * (vMid.Y - v1.Y); return(dblArea * dblArea < accuracy); }
public bool Equals(Vertex2D v) { if (v == null) { return(false); } return(X == v.X && Y == v.Y); }
internal CatmullCurve2D(Vertex2D v0, Vertex2D v1, Vertex2D v2, Vertex2D v3) { var(dt0, dt1, dt2) = Clamp( MathF.Sqrt((v1 - v0).Length()), MathF.Sqrt((v2 - v1).Length()), MathF.Sqrt((v3 - v2).Length()) ); _c.X = InitNonuniformCatmullCoeffs(v0.X, v1.X, v2.X, v3.X, dt0, dt1, dt2); _c.Y = InitNonuniformCatmullCoeffs(v0.Y, v1.Y, v2.Y, v3.Y, dt0, dt1, dt2); }
public float Dot(Vertex2D pv) { return(X * pv.X + Y * pv.Y); }
public Vertex2D Sub(Vertex2D v) { X -= v.X; Y -= v.Y; return(this); }
public Vertex2D Add(Vertex2D v) { X += v.X; Y += v.Y; return(this); }
public bool Equals(Vertex2D v) { return(X == v.X && Y == v.Y); }