Пример рисования в C#. «Кораблик»

Нарисуем корабль, например, такой:

Кораблик

Ваши действия:

1) Создайте приложение Windows Forms,  namespace = «Кораблик».
2) Размер формы задайте 900х500, на ней разместите визуальный объект для рисования pictureBox1, измените его свойство Dock = Fill; (он займет все пространство формы).
3) Кликнув на компоненте, вы создадите событие pictureBox1.Click и форму для метода обработки этого события pictureBox1_Click ();
4) Не забудьте добавить библиотеку System.Drawing. Ненужные библиотеки можно удалить (нужны всего три: System, System.Windows.Forms и System.Drawing).
5) В окне кода файла Form1.cs получите следующий текст:

using System;
using System.Drawing;
using System.Windows.Forms;
namespace Кораблик
{
   public partial class Form1 : Form
   {
     public Form1()
     {
       InitializeComponent();
     }
     private void pictureBox1_Click(object sender, EventArgs e)
     {
       ...
     }
   }
}

Теперь нам осталось только написать обработчик события, добавленный нами метод  pictureBox1_Click ( ), для чего вставим следующие операторы с комментариями:

 // Объявляем объект "g" класса Graphics и предоставляем
 // ему возможность рисования на pictureBox1:
  Graphics g = pictureBox1.CreateGraphics();
  g.Clear(Color.Turquoise);
 // Создаем объекты-кисти для закрашивания фигур
  SolidBrush myCorp = new SolidBrush(Color.DarkMagenta);
  SolidBrush myTrum = new SolidBrush(Color.DarkOrchid);
  SolidBrush myTrub = new SolidBrush(Color.DeepPink);
  SolidBrush mySeа = new SolidBrush(Color.Blue);
 //Выбираем перо myPen желтого цвета толщиной в 2 пикселя:
  Pen myWind = new Pen(Color.Yellow, 2);
 // Закрашиваем фигуры
  g.FillRectangle(myTrub,300,125,75,75); // 1 труба (прямоугольник)
  g.FillRectangle(myTrub,480,125,75,75); // 2 труба (прямоугольник)
  g.FillPolygon(myCorp, new Point[]      // корпус (трапеция)
    {
    new Point(100,300),new Point(700,300),
    new Point(700,300),new Point(600,400),
    new Point(600,400),new Point(200,400),
    new Point(200,400),new Point(100,300)
    }
  );
  g.FillRectangle(myTrum, 250, 200, 350, 100); // палуба (прямоугольник)
 // Море - 12 секторов-полуокружностей
  int x = 50;
  int Radius = 50;
  while (x <= pictureBox1.Width - Radius)
  {
     g.FillPie(mySeа, 0 + x, 375, 50, 50, 0, -180); 
     x += 50;
  }
 // Иллюминаторы 
  for (int y = 300; y <= 550; y += 50)
  {
     g.DrawEllipse(myWind, y, 240, 20, 20); // 6 окружностей
  }

В этом примере мы использовали методы класса Graphics: FillRectangle(), FillPolygon(), FillPie() и DrawEllipse(). Найдите их в таблице предыдущей статьи. Кроме того мы используем структуры Point; oбъекты-кисти класса SolidBrush; объект-перо класса Pen. Для рисования волн моря использовался цикл while, для иллюминаторов — цикл for. Полигон задается массивом точек для соединения их сплошной ломаной.
И все, программу можно проверять. Кликнув в окне, сможем увидеть наш кораблик:
Кораблик

Перейдем к следующему примеру «Рисование контура и закраска произвольной области, ограниченной ломаной прямой».


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
5 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Зачем в создании корпуса задействовали 8 точек, когда нужно всего 4? Там все точки зачем-то дублируются

А что за namespace = «Кораблик».??

Важно: Вы можете поддержать проект и автора.

это делается через класс?

Важно: Вы можете поддержать проект и автора.
5
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x