Рисование фигур - C#
Формулировка задачи:
Описать базовый класс Фигура, который имеет один виртуальный метод void Draw (Graphics g).
Описать 3 класса наследники Окружность, Треугольник и Прямоугольник.
Классы наследники имеют набор полей для однозначного задания фигур.
Решение задачи: «Рисование фигур»
textual
Листинг программы
class Figure { public virtual void Draw(Graphics g){} } class Circle: Figure { int r; Point o; public Circle(Point O, int R) { r = R; o = O; } public override void Draw(Graphics g) { Rectangle rect = new Rectangle(); rect.X = o.X - r; rect.Y = o.Y - r; rect.Width = r << 1; rect.Height = r << 1; g.DrawEllipse(new Pen(Color.Red, 2F), rect); } } class Triangle: Figure { Point[] points; public Triangle(Point[] p) { if (p.Length != 3) throw new Exception("Длина массива должна быть равна трем."); points = p; } public override void Draw(Graphics g) { g.DrawPolygon(new Pen(Color.Red, 2F), points); } } class Square: Figure { Rectangle rect; public Square(Rectangle r) { rect = r; } public override void Draw(Graphics g) { g.DrawRectangle(new Pen(Color.Red, 2F), rect); } } /*********************************/ void Form1_Paint(object sender, PaintEventArgs e) { Point[] p = new Point[3]; p[0] = new Point(50, 50); p[1] = new Point(100, 100); p[2] = new Point(50, 150); Triangle t = new Triangle(p); t.Draw(e.Graphics); Square s = new Square(new Rectangle(50, 50, 150, 100)); s.Draw(e.Graphics); Circle c = new Circle(new Point(60, 80), 50); c.Draw(e.Graphics); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д