public static CanvasPosition CanvasFromPlotter(Geometry.Position point, double zoomScale, CanvasPosition origin) { return new CanvasPosition { X = (point.X * zoomScale) + origin.X, Y = origin.Y - (point.Y * zoomScale) }; }
public static Geometry.Position PlotterFromCanvas(CanvasPosition point, double zoomScale, CanvasPosition origin) { return new Geometry.Position { X = (point.X - origin.X) / zoomScale, Y = (origin.Y - point.Y) / zoomScale }; }
public void DrawCircle(CanvasPosition centre, double radius, Color colour) { var circle = new Ellipse(); circle.Height = 2 * radius; circle.Width = 2 * radius; circle.Stroke = new SolidColorBrush(colour); circle.Fill = new SolidColorBrush(colour); Canvas.SetLeft(circle, centre.X - radius); Canvas.SetTop(circle, centre.Y - radius); DrawObject(circle); }
private void DrawText(string text, CanvasPosition p, HorizontalAlignment align, string font, int size) { var label = new Label(); label.FontSize = size; label.FontFamily = new FontFamily(font); label.Content = text; label.HorizontalAlignment = align; Canvas.SetLeft(label, p.X); Canvas.SetTop(label, p.Y); DrawObject(label); }
public void DrawEndAlignedText(string text, CanvasPosition p, string font, int size) { DrawText(text, p, HorizontalAlignment.Right, font, size); }
public void DrawCenteredText(string text, CanvasPosition p, string font, int size) { DrawText(text, p, HorizontalAlignment.Center, font, size); }
public void DrawAlignedCircle(CanvasPosition centre, double radius, Color colour) { centre.X = AlignedToPixel(centre.X, 2 * radius); centre.Y = AlignedToPixel(centre.Y, 2 * radius); DrawCircle(centre, radius, colour); }
public void DrawCross(CanvasPosition position, double crossSize, double lineWidth, Color colour) { var leftX = position.X - crossSize; var rightX = position.X + crossSize; var topY = position.Y - crossSize; var bottomY = position.Y + crossSize; DrawLine( new CanvasPosition { X = leftX, Y = topY }, new CanvasPosition { X = rightX, Y = bottomY }, lineWidth, colour); DrawLine( new CanvasPosition { X = leftX, Y = bottomY }, new CanvasPosition { X = rightX, Y = topY }, lineWidth, colour); }
public void DrawAlignedCircle(CanvasPosition centre, double radius, Color colour) { DrawCircle(centre, radius, colour); }
private Geometry.Position PicturePosFromCanvasPos(CanvasPosition pos) { return PointConversions.PlotterFromCanvas(pos, ZoomScale(), _origin.Point); }
private void FocusPosition(CanvasPosition canvas_pos, Geometry.Position picture_pos) { var focus_pos = CanvasPosFromPicturePos(picture_pos); var dx = canvas_pos.X - focus_pos.X; var dy = canvas_pos.Y - focus_pos.Y; _origin.Point = new CanvasPosition { X = _origin.Point.X + dx, Y = _origin.Point.Y + dy }; }
public void DrawText(string text, CanvasPosition p, string font, int size) { _gl.DrawText((int)p.X, (int)(Height() - p.Y), 0, 0, 0, font, size, text); }
public void DrawCircle(CanvasPosition centre, double radius, Color colour) { _gl.Color(colour.R, colour.G, colour.B, colour.A); _gl.PointSize((float)radius*2); _gl.Begin(OpenGL.GL_POINTS); _gl.Vertex(GLPosition(centre)); _gl.End(); }
private float[] GLPosition(CanvasPosition p) { return new float[] { GLx(p.X), GLy(p.Y) }; }
public void DrawEndAlignedText(string text, CanvasPosition p, string font, int size) { DrawText(text, p, font, size); }
public void DrawLine(CanvasPosition start, CanvasPosition end, double lineWidth, Color colour) { var line = new Line(); line.StrokeThickness = lineWidth; line.Stroke = new SolidColorBrush(colour); line.X1 = start.X; line.Y1 = start.Y; line.X2 = end.X; line.Y2 = end.Y; DrawObject(line); }
public void DrawLine(CanvasPosition start, CanvasPosition end, double lineWidth, Color colour) { _gl.Color(colour.R, colour.G, colour.B, colour.A); _gl.LineWidth((float)lineWidth); _gl.Begin(OpenGL.GL_LINES); _gl.Vertex(GLPosition(start)); _gl.Vertex(GLPosition(end)); _gl.End(); }