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); } }
/// <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; }