public void UpdateLines(
            ref ObservableCollection <DWLine> vectorlines,
            ref ObservableCollection <DWLine> basislines,
            ref ObservableCollection <DWGridLine> dynamicLines,
            DWVector iHat, DWVector jHat,
            double xOrig, double yOrig, double unitLength)
        {
            foreach (DWLine dwline in vectorlines)
            {
                DWVector vector = VectorMath.GetNewVectorLocation(iHat, jHat, dwline.X, dwline.Y);
                dwline.Line.X2 = xOrig + (vector.X * unitLength);
                dwline.Line.Y2 = yOrig - (vector.Y * unitLength);
            }

            foreach (DWLine dwline in basislines)
            {
                DWVector vector = VectorMath.GetNewVectorLocation(iHat, jHat, dwline.X, dwline.Y);
                dwline.Line.X2 = xOrig + (vector.X * unitLength);
                dwline.Line.Y2 = yOrig - (vector.Y * unitLength);
            }

            foreach (DWGridLine gridline in dynamicLines)
            {
                DWVector vector1 = VectorMath.GetNewVectorLocation(iHat, jHat, gridline.Vector1.X, gridline.Vector1.Y);
                DWVector vector2 = VectorMath.GetNewVectorLocation(iHat, jHat, gridline.Vector2.X, gridline.Vector2.Y);

                gridline.DWLine.Line.X1 = xOrig + (vector1.X * unitLength);
                gridline.DWLine.Line.Y1 = yOrig - (vector1.Y * unitLength);

                gridline.DWLine.Line.X2 = xOrig + (vector2.X * unitLength);
                gridline.DWLine.Line.Y2 = yOrig - (vector2.Y * unitLength);
            }
        }
Exemple #2
0
        /// <summary>
        /// Add a Vector to the VectorLines list.
        /// Each vector has a tooltip and MouseEnter/MouseLeave events
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        public void AddVector(double x, double y)
        {
            DWVector        vector = VectorMath.GetNewVectorLocation(IHat, JHat, x, y);
            SolidColorBrush color  = PickRandomColor();

            DWLine vectorLine = new DWLine
                                (
                x, y, LineType.VECTOR,
                new Line
            {
                Stroke = color,
                X1     = CanvasXOrigin,
                Y1     = CanvasYOrigin,
                X2     = CanvasXOrigin + (vector.X * UnitLength),
                Y2     = CanvasYOrigin - (vector.Y * UnitLength)
            }, color
                                );

            vectorLine.Line.ToolTip = $"X: {vectorLine.X}\nY: {vectorLine.Y}";

            vectorLine.Line.MouseEnter += MouseEnterVectorHighlight;
            vectorLine.Line.MouseLeave += MouseLeaveVectorHighlight;

            VectorLines.Add(vectorLine);
        }
 public DWGridLine(DWVector vec1, DWVector vec2, DWLine dwline)
 {
     Vector1 = vec1;
     Vector2 = vec2;
     DWLine  = dwline;
 }