Рисование фигур - 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);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.5 из 5
Похожие ответы