private void drawEllipse(MouseEventArgs e, bool isEraser) { double R1, R2, l, r, b, t; l = startPoint.X; t = startPoint.Y; r = e.GetPosition(inkPanel).X; b = e.GetPosition(inkPanel).Y; R1 = (r - l) / 2.0; R2 = (t - b) / 2.0; Geometry.Point center = new Geometry.Point((l + r) / 2.0, (b + t) / 2.0); Polygon el = new Polygon(); el.Stroke = new SolidColorBrush(Color.FromArgb(parameters.LineColor.a, parameters.LineColor.r, parameters.LineColor.g, parameters.LineColor.b)); el.StrokeThickness = parameters.Thickness; PointCollection myPointCollection = new PointCollection(); /* * foreach (var item in new Geometry.Ellipse( * center, R1, R2).Points(parameters)) * { * myPointCollection.Add(new Point(item.x, item.y)); * }*/ var item = new Geometry.Ellipse(center, R1, R2).Points(parameters); for (double Angle = 0; Angle <= 2 * Math.PI; Angle = Angle + 0.01) { myPointCollection.Add(new Point(0.5 * (l + r) + R1 * Math.Cos(Angle), 0.5 * (b + t) + R2 * Math.Sin(Angle))); } el.Points = myPointCollection; if (checkBoxFill.IsChecked == true) { el.Fill = new SolidColorBrush(Color.FromArgb( parameters.FillColor.a, parameters.FillColor.r, parameters.FillColor.g, parameters.FillColor.b)); } inkPanel.Children.Add(el); currentShape = el; }
private void drawTriangle(MouseEventArgs e) { Geometry.Point center = new Geometry.Point(0, 0); Geometry.Point r = new Geometry.Point(0, 0); Polygon tr = new Polygon(); tr.Stroke = new SolidColorBrush(Color.FromArgb(parameters.LineColor.a, parameters.LineColor.r, parameters.LineColor.g, parameters.LineColor.b)); tr.StrokeThickness = parameters.Thickness; PointCollection myPointCollection = new PointCollection(); foreach (var item in new Geometry.Triangle( new Geometry.Point(startPoint.X, startPoint.Y), new Geometry.Point(e.GetPosition(inkPanel).X, e.GetPosition(inkPanel).Y)) .Points(parameters)) { myPointCollection.Add(new Point(item.x, item.y)); } tr.Points = myPointCollection; if (checkBoxFill.IsChecked == true) { tr.Fill = new SolidColorBrush(Color.FromArgb( parameters.FillColor.a, parameters.FillColor.r, parameters.FillColor.g, parameters.FillColor.b)); } inkPanel.Children.Add(tr); currentShape = tr; }