private void DrawCircle(Point Center, int Radius, Color C) { CircleDrawMethod DrawFunc = null; switch (cmbMethod.SelectedIndex) { case 0: DrawFunc = CircleCartCoord; break; case 1: DrawFunc = CirclePolarCoord; break; case 2: DrawFunc = CircleBresenham; break; case 3: DrawFunc = CircleMidPoint; break; case 4: DrawFunc = CircleLibraryFunc; break; } DrawFunc(Center, Radius, C); }
private void button3_Click(object sender, EventArgs e) { //br = new SolidBrush(BGColor); //G.FillRectangle(br, 0, 0, B.Width, B.Height); Point O1 = new Point(B.Width / 2, B.Height / 2); br = new SolidBrush(LineColor); G.FillRectangle(br, O.X - 1, O.Y - 1, 3, 3); int RMin = Convert.ToInt32(tbMinRadius.Text); int RMax = Convert.ToInt32(tbMaxRadius.Text); int N = Convert.ToInt32(tbCircNumber.Text); int Step = (int)Math.Round((double)(RMax - RMin) / (double)(N)); int RS = RMin; if (rbCircle.Checked) { CircleDrawMethod DrawFunc = null; switch (cmbMethod.SelectedIndex) { case 0: DrawFunc = CircleCartCoord; break; case 1: DrawFunc = CirclePolarCoord; break; case 2: DrawFunc = CircleBresenham; break; case 3: DrawFunc = CircleMidPoint; break; case 4: DrawFunc = CircleLibraryFunc; break; } for (int i = 1; i <= N; i++) { DrawFunc(O1, RS, LineColor); RS += Step; } } else { EllipseDrawMethod DrawFunc = null; switch (cmbMethod.SelectedIndex) { case 0: DrawFunc = EllipseCartCoord; break; case 1: DrawFunc = EllipsePolarCoord; break; case 2: DrawFunc = EllipseMidPoint; break; case 3: DrawFunc = EllipseLibraryFunc; break; } for (int i = 1; i <= N; i++) { DrawFunc(O1, RS, 100, LineColor); RS += Step; } } pictBox.Refresh(); }