public override void Update(ICoordinateCalculator <double> xCoordCalc, ICoordinateCalculator <double> yCoordCalc) { base.Update(xCoordCalc, yCoordCalc); if (Y1.CompareTo(Y2) > 0) { MeasureText.VerticalAnchorPoint = VerticalAnchorPoint.Top; MeasureText.Margin = new Thickness(0, 5, 0, 0); } else { MeasureText.VerticalAnchorPoint = VerticalAnchorPoint.Bottom; MeasureText.Margin = new Thickness(0, -5, 0, 0); } var rangeX = X1.CompareTo(X2) > 0 ? RangeFactory.NewRange(X2, X1) : RangeFactory.NewRange(X1, X2); var rangeY = Y1.CompareTo(Y2) > 0 ? RangeFactory.NewRange(Y2, Y1) : RangeFactory.NewRange(Y1, Y2); string xText; if (xCoordCalc is ICategoryCoordinateCalculator <DateTime> ) { var categoryCalc = (ICategoryCoordinateCalculator <DateTime>)xCoordCalc; var indexRange = (IntegerRange)rangeX; var difference = categoryCalc.TransformIndexToData(indexRange.Max) - categoryCalc.TransformIndexToData(indexRange.Min); xText = string.Format("{0:dd} days", difference); } else { xText = rangeX.Diff.ToString(); } MeasureText.Text = string.Format("{0:#.##}\n{1}", rangeY.Diff, xText); }
protected static void DrawRectangle(IRenderContext2D renderContext, IPen2D pen, IBrush2D brush, ICoordinateCalculator<double> xcal, ICoordinateCalculator<double> ycal, float xv, float yv, float wv, float hv) { var x1 = xcal.GetCoordinate(xv); var y1 = ycal.GetCoordinate(yv); var x2 = xcal.GetCoordinate(xv + wv); var y2 = ycal.GetCoordinate(yv + hv); var pt1 = new Point(x1, y1); var pt2 = new Point(x2, y2); renderContext.FillRectangle(brush, pt1, pt2); renderContext.DrawQuad(pen, pt1, pt2); }
protected static void DrawRectangle(IRenderContext2D renderContext, IPen2D pen, IBrush2D brush, ICoordinateCalculator <double> xcal, ICoordinateCalculator <double> ycal, float xv, float yv, float wv, float hv) { var x1 = xcal.GetCoordinate(xv); var y1 = ycal.GetCoordinate(yv); var x2 = xcal.GetCoordinate(xv + wv); var y2 = ycal.GetCoordinate(yv + hv); var pt1 = new Point(x1, y1); var pt2 = new Point(x2, y2); renderContext.FillRectangle(brush, pt1, pt2); renderContext.DrawQuad(pen, pt1, pt2); }
public void DrawNodes(IRenderContext2D renderContext, ICoordinateCalculator <double> xc, ICoordinateCalculator <double> yc, Rect area, float pixSizeX, float pixSizeY) { var pen = renderContext.CreatePen(Colors.Brown, false, 1); var nodes = FindNodesWithDecimation(area, pixSizeX, pixSizeY); foreach (var node in nodes) { var p1 = new Point(xc.GetCoordinate(node.HorizontalRange.Min), yc.GetCoordinate(node.VerticalRange.Min)); var p2 = new Point(xc.GetCoordinate(node.HorizontalRange.Max), yc.GetCoordinate(node.VerticalRange.Max)); renderContext.DrawQuad(pen, p1, p2); } pen.Dispose(); }
public override void Update(ICoordinateCalculator <double> xCoordCalc, ICoordinateCalculator <double> yCoordCalc) { base.Update(xCoordCalc, yCoordCalc); if (Y1.CompareTo(Y2) > 0) { MeasureText.VerticalAnchorPoint = VerticalAnchorPoint.Top; MeasureText.Margin = new Thickness(0, 5, 0, 0); } else { MeasureText.VerticalAnchorPoint = VerticalAnchorPoint.Bottom; MeasureText.Margin = new Thickness(0, -5, 0, 0); } var range = Y1.CompareTo(Y2) > 0 ? RangeFactory.NewRange(Y2, Y1) : RangeFactory.NewRange(Y1, Y2); MeasureText.Text = string.Format("{0:#.##}", range.Diff); }
public InterestingRegion(InterestingRegion other) { Region = other.Region; Calculator = other.Calculator; this.ComponentPoints = new List <Coordinate>(); }
public InterestingRegion(float[,] region, ICoordinateCalculator calculator) { Region = region; Calculator = calculator; ComponentPoints = new List <Coordinate>(); }