public LineLikeOnTwoDotsRule(LineLike line, Dot d1, Dot d2) : base(line) { d1.Childs.Add(line); d2.Childs.Add(line); line.Parents.Add(d1); line.Parents.Add(d2); Fix(); }
public ParallelLineRule(Line line, LineLike original, Dot on) : base(line) { original.Childs.Add(line); on.Childs.Add(line); line.Parents.Add(original); line.Parents.Add(on); Fix(); }
public static Vector2 Reflect(Vector2 vec, LineLike axis) { Line lin = Line.FromTwoPoints(axis.Point1 - new Vector2(0, axis.Yint), axis.Point2 - new Vector2(0, axis.Yint)); Vector2 d = vec - new Vector2(0, axis.Yint); float angle = (float)Math.Atan(lin.Grad); Vector2 ReflectedDot = new Vector2((float)(d.X * Math.Cos(2 * angle) + d.Y * Math.Sin(2 * angle)), (float)(d.X * Math.Sin(2 * angle) - d.Y * Math.Cos(2 * angle))); return(ReflectedDot + new Vector2(0, axis.Yint)); }
public ReflectedShapeRule(LineLike axis, Shape original, Shape shape) : base(shape) { shape.Parents.Add(axis); shape.Parents.Add(original); axis.Childs.Add(shape); original.Childs.Add(shape); Fix(); }