Exemplo n.º 1
0
            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();
            }
Exemplo n.º 2
0
            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();
            }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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();
        }