Exemplo n.º 1
0
 private void AddLine(ControlLineCanvas canvas1, ControlLineCanvas canvas2)
 {
     if (canvas1.IsDrawing)
     {
         canvas1.IsDrawing = false;
         var cl1 = canvas1.ControlLines[canvas1.ControlLines.Count - 1];
         var cl2 = new ControlLine(canvas2, cl1);
         canvas2.ControlLines.Add(cl2);
         cl1.Mid.PreviewMouseRightButtonDown += DeleteLine;
         cl2.Mid.PreviewMouseRightButtonDown += DeleteLine;
     }
 }
Exemplo n.º 2
0
 public Morpher(ControlLineCanvas sourceCanvas, ControlLineCanvas destCanvas, int numFrames, double a, double b, double p)
 {
     this.numFrames = numFrames - 1;
     sourceLines    = ControlLinesToPoints(sourceCanvas.ControlLines);
     destLines      = ControlLinesToPoints(destCanvas.ControlLines);
     deltas         = CalculateDeltas(sourceLines, destLines);
     source         = sourceCanvas.DirectBitmap;
     dest           = destCanvas.DirectBitmap;
     this.a         = a;
     this.b         = b;
     this.p         = p;
     width          = sourceCanvas.BitmapSource.PixelWidth;
     height         = sourceCanvas.BitmapSource.PixelHeight;
 }
Exemplo n.º 3
0
        public ControlLine(ControlLineCanvas controlLineCanvas, double x, double y)
        {
            ControlLineCanvas = controlLineCanvas;

            Start = new ControlLineStartThumb(this, x, y);
            Mid   = new ControlLineMidThumb(this, x, y);
            End   = new ControlLineEndThumb(this, x, y);

            Line                 = new LineGeometry();
            Path                 = new Path();
            Path.Stroke          = Brushes.LimeGreen;
            Path.StrokeThickness = 1;
            Path.Data            = Line;
            ControlLineCanvas.canvas.Children.Add(Path);
        }
Exemplo n.º 4
0
        public ControlLine(ControlLineCanvas controlLineCanvas, ControlLine controlLine)
        {
            ControlLineCanvas = controlLineCanvas;

            Point startPos = controlLine.Start.GetPos();
            Point endPos   = controlLine.End.GetPos();

            Start = new ControlLineStartThumb(this, startPos.X, startPos.Y);
            End   = new ControlLineEndThumb(this, endPos.X, endPos.Y);
            Vector v = Point.Subtract(startPos, endPos);

            Mid = new ControlLineMidThumb(this, endPos.X + v.X / 2, endPos.Y + v.Y / 2);
            Canvas.SetZIndex(End, 2);

            Line                 = new LineGeometry();
            Path                 = new Path();
            Path.Stroke          = Brushes.LimeGreen;
            Path.StrokeThickness = 1;
            Path.Data            = Line;
            ControlLineCanvas.canvas.Children.Add(Path);
            UpdateLine();
        }