public override void Draw(Tekening tek, Graphics gr, PointF loc_co, Vorm[] ref_vormen) { if (punten.Count != 2) { return; } PointF M; float R; Cirkel.CalcCirkelWaarden(Punten[0].Coordinaat, Punten[1].Coordinaat, loc_co, out M, out R); PointF Mtek = tek.co_pt(M, gr.DpiX, gr.DpiY); float Rtek = R * tek.Schaal * gr.DpiX / 2.54f; double hoek1 = (Math.Atan2(punten[0].Coordinaat.Y - M.Y, punten[0].Coordinaat.X - M.X) / Math.PI * 180); double hoek2 = (Math.Atan2(punten[1].Coordinaat.Y - M.Y, punten[1].Coordinaat.X - M.X) / Math.PI * 180); double hoek3 = (Math.Atan2(loc_co.Y - M.Y, loc_co.X - M.X) / Math.PI * 180); float start = (float)hoek1; float angle = (float)(hoek3 - hoek1); if (!((hoek1 < hoek2) & (hoek2 < hoek3)) & !((hoek3 < hoek2) & (hoek2 < hoek1))) { if (angle < 0) { angle += 360; } else { angle -= 360; } } gr.DrawArc(GetPen(false), Mtek.X - Rtek, Mtek.Y - Rtek, 2 * Rtek, 2 * Rtek, start, angle); }
public override void Draw(Tekening tek, Graphics gr, bool widepen, bool fill) { PointF M; float straal; Cirkel.CalcCirkelWaarden(Punten[0].Coordinaat, Punten[1].Coordinaat, Punten[2].Coordinaat, out M, out straal); PointF Mtek = tek.co_pt(new PointF(M.X, M.Y), gr.DpiX, gr.DpiY); double a0 = Math.Atan2(punten[0].Coordinaat.Y - M.Y, punten[0].Coordinaat.X - M.X) / Math.PI * 180; double a1 = Math.Atan2(punten[1].Coordinaat.Y - M.Y, punten[1].Coordinaat.X - M.X) / Math.PI * 180; double a2 = Math.Atan2(punten[2].Coordinaat.Y - M.Y, punten[2].Coordinaat.X - M.X) / Math.PI * 180; float start = (float)a0; float angle = (float)(a2 - a0); if (!((a0 < a1) & (a1 < a2)) & !((a2 < a1) & (a1 < a0))) { if (angle < 0) { angle += 360; } else { angle -= 360; } } if (fill) { gr.FillPie(GetBrush(gr, tek.Schaal, tek.Offset, false), Mtek.X - straal * tek.Schaal / 2.54f * gr.DpiX, Mtek.Y - straal * tek.Schaal / 2.54f * gr.DpiY, 2 * straal * tek.Schaal / 2.54f * gr.DpiX, 2 * straal * tek.Schaal / 2.54f * gr.DpiY, start, angle); } gr.DrawPie(GetPen(false), Mtek.X - straal * tek.Schaal / 2.54f * gr.DpiX, Mtek.Y - straal * tek.Schaal / 2.54f * gr.DpiY, 2 * straal * tek.Schaal / 2.54f * gr.DpiX, 2 * straal * tek.Schaal / 2.54f * gr.DpiY, start, angle); }
public override void Draw(Tekening tek, Graphics gr, PointF loc_co, Vorm[] ref_vormen) { if (punten.Count != 2) { return; } PointF M; float straal; Cirkel.CalcCirkelWaarden(Punten[0].Coordinaat, Punten[1].Coordinaat, loc_co, out M, out straal); PointF Mtek = tek.co_pt(new PointF(M.X, M.Y), gr.DpiX, gr.DpiY); double a0 = Math.Atan2(punten[0].Coordinaat.Y - M.Y, punten[0].Coordinaat.X - M.X) / Math.PI * 180; double a1 = Math.Atan2(punten[1].Coordinaat.Y - M.Y, punten[1].Coordinaat.X - M.X) / Math.PI * 180; double a2 = Math.Atan2(loc_co.Y - M.Y, loc_co.X - M.X) / Math.PI * 180; float start = (float)a0; float angle = (float)(a2 - a0); if (!((a0 < a1) & (a1 < a2)) & !((a2 < a1) & (a1 < a0))) { if (angle < 0) { angle += 360; } else { angle -= 360; } } gr.FillPie(GetBrush(gr, tek.Schaal, new PointF(), false), Mtek.X - straal * tek.Schaal / 2.54f * gr.DpiX, Mtek.Y - straal * tek.Schaal / 2.54f * gr.DpiY, 2 * straal * tek.Schaal / 2.54f * gr.DpiX, 2 * straal * tek.Schaal / 2.54f * gr.DpiY, start, angle); gr.DrawPie(GetPen(false), Mtek.X - straal * tek.Schaal / 2.54f * gr.DpiX, Mtek.Y - straal * tek.Schaal / 2.54f * gr.DpiY, 2 * straal * tek.Schaal / 2.54f * gr.DpiX, 2 * straal * tek.Schaal / 2.54f * gr.DpiY, start, angle); }
public override RectangleF Bounds(Graphics gr) { PointF M; float straal; Cirkel.CalcCirkelWaarden(Punten[0].Coordinaat, Punten[1].Coordinaat, Punten[2].Coordinaat, out M, out straal); return(new RectangleF(M.X - straal, M.Y - straal, 2 * straal, 2 * straal)); }
public override RectangleF Bounds(Graphics gr) { PointF M; float R; Cirkel.CalcCirkelWaarden(Punten[0].Coordinaat, Punten[1].Coordinaat, Punten[2].Coordinaat, out M, out R); return(new RectangleF(M.X - R, M.Y - R, 2 * R, 2 * R)); }
public override void Draw(Tekening tek, Graphics gr, bool widepen, bool fill) { if (punten.Count != 3) { return; } PointF M; float R; Cirkel.CalcCirkelWaarden(Punten[0].Coordinaat, Punten[1].Coordinaat, Punten[2].Coordinaat, out M, out R); PointF Mtek = tek.co_pt(M, gr.DpiX, gr.DpiY); float Rtek = R * tek.Schaal * gr.DpiX / 2.54f; double hoek1 = (Math.Atan2(punten[0].Coordinaat.Y - M.Y, punten[0].Coordinaat.X - M.X) / Math.PI * 180); double hoek2 = (Math.Atan2(punten[1].Coordinaat.Y - M.Y, punten[1].Coordinaat.X - M.X) / Math.PI * 180); double hoek3 = (Math.Atan2(punten[2].Coordinaat.Y - M.Y, punten[2].Coordinaat.X - M.X) / Math.PI * 180); float start = (float)hoek1; float angle = (float)(hoek3 - hoek1); if (!((hoek1 < hoek2) & (hoek2 < hoek3)) & !((hoek3 < hoek2) & (hoek2 < hoek1))) { if (angle < 0) { angle += 360; } else { angle -= 360; } } Pen pen = (Pen)GetPen(false).Clone(); if (Geselecteerd) { Pen selectie = new Pen(Color.Black, pen.Width + 2); pen.Width += 1; gr.DrawArc(selectie, Mtek.X - Rtek, Mtek.Y - Rtek, 2 * Rtek, 2 * Rtek, start, angle); gr.DrawArc(pen, Mtek.X - Rtek, Mtek.Y - Rtek, 2 * Rtek, 2 * Rtek, start, angle); } else { if (widepen) { pen.Width += 2; pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; } gr.DrawArc(pen, Mtek.X - Rtek, Mtek.Y - Rtek, 2 * Rtek, 2 * Rtek, start, angle); } }
public override void Draw(Graphics gr, float schaal, RectangleF window) { PointF M; float straal; Cirkel.CalcCirkelWaarden(punten[0].Coordinaat, punten[1].Coordinaat, punten[2].Coordinaat, out M, out straal); PointF Mtek = new PointF(M.X - window.Left, M.Y - window.Top); Mtek = new PointF(Mtek.X * schaal * 10, Mtek.Y * schaal * 10); straal = straal * schaal * 10; double a0 = Math.Atan2(punten[0].Coordinaat.Y - M.Y, punten[0].Coordinaat.X - M.X) / Math.PI * 180; double a1 = Math.Atan2(punten[1].Coordinaat.Y - M.Y, punten[1].Coordinaat.X - M.X) / Math.PI * 180; double a2 = Math.Atan2(punten[2].Coordinaat.Y - M.Y, punten[2].Coordinaat.X - M.X) / Math.PI * 180; float start = (float)a0; float angle = (float)(a2 - a0); if (!((a0 < a1) & (a1 < a2)) & !((a2 < a1) & (a1 < a0))) { if (angle < 0) { angle += 360; } else { angle -= 360; } } Brush br = GetBrush(gr, schaal, new PointF(-window.Left, -window.Top), true); Pen pen = (Pen)GetPen(true).Clone(); pen.Width /= 2.54f; GraphicsPath path = new GraphicsPath(); path.AddArc(Mtek.X - straal, Mtek.Y - straal, 2 * straal, 2 * straal, start, angle); path.CloseFigure(); gr.FillPath(br, path); gr.DrawPath(pen, path); }
public override void Draw(Graphics gr, float schaal, RectangleF window) { if (punten.Count != 3) { return; } Pen pen = (Pen)GetPen(true).Clone(); pen.Width = pen.Width / 2.54f; PointF M; float R; Cirkel.CalcCirkelWaarden(Punten[0].Coordinaat, Punten[1].Coordinaat, Punten[2].Coordinaat, out M, out R); PointF Mtek = new PointF(M.X - window.Left, M.Y - window.Top); Mtek = new PointF(Mtek.X * schaal * 10, Mtek.Y * schaal * 10); R = R * schaal * 10; double hoek1 = (Math.Atan2(punten[0].Coordinaat.Y - M.Y, punten[0].Coordinaat.X - M.X) / Math.PI * 180); double hoek2 = (Math.Atan2(punten[1].Coordinaat.Y - M.Y, punten[1].Coordinaat.X - M.X) / Math.PI * 180); double hoek3 = (Math.Atan2(punten[2].Coordinaat.Y - M.Y, punten[2].Coordinaat.X - M.X) / Math.PI * 180); float start = (float)hoek1; float angle = (float)(hoek3 - hoek1); if (!((hoek1 < hoek2) & (hoek2 < hoek3)) & !((hoek3 < hoek2) & (hoek2 < hoek1))) { if (angle < 0) { angle += 360; } else { angle -= 360; } } gr.DrawArc(pen, Mtek.X - R, Mtek.Y - R, 2 * R, 2 * R, start, angle); }
public override Region GetRegion(Tekening tek) { if (punten.Count != 2) { return(new Region(new Rectangle(0, 0, 0, 0))); } Graphics gr = tek.CreateGraphics(); PointF M; float R; Cirkel.CalcCirkelWaarden(Punten[0].Coordinaat, Punten[1].Coordinaat, Punten[2].Coordinaat, out M, out R); PointF Mtek = tek.co_pt(M, gr.DpiX, gr.DpiY); float Rtek = R * tek.Schaal * gr.DpiX / 2.54f; double hoek1 = (Math.Atan2(punten[0].Coordinaat.Y - M.Y, punten[0].Coordinaat.X - M.X) / Math.PI * 180); double hoek2 = (Math.Atan2(punten[1].Coordinaat.Y - M.Y, punten[1].Coordinaat.X - M.X) / Math.PI * 180); double hoek3 = (Math.Atan2(Punten[2].Coordinaat.Y - M.Y, Punten[2].Coordinaat.X - M.X) / Math.PI * 180); float start = (float)hoek1; float angle = (float)(hoek3 - hoek1); if (!((hoek1 < hoek2) & (hoek2 < hoek3)) & !((hoek3 < hoek2) & (hoek2 < hoek1))) { if (angle < 0) { angle += 360; } else { angle -= 360; } } GraphicsPath path = new GraphicsPath(); path.AddArc(Mtek.X - Rtek, Mtek.Y - Rtek, 2 * Rtek, 2 * Rtek, start, angle); return(new Region(path)); }