Разделы презентаций


Рисование в форме

Содержание

Рисование Козьминых Н.М.ПероКисть Объект класса Graphics

Слайды и текст этой презентации

Слайд 1Лекция 13. Рисование в форме
дисциплина «Программирование»
Козьминых Н.М.

Лекция 13. Рисование в формедисциплина «Программирование»Козьминых Н.М.

Слайд 2Рисование
Козьминых Н.М.





Перо
Кисть
Объект класса Graphics

Рисование Козьминых Н.М.ПероКисть Объект класса Graphics

Слайд 3Класс Graphics
Козьминых Н.М.
Класс Graphics - это основной класс, необходимый для

рисования, находится в пространстве имен Drawing
Graphics graphPict = pctGraph.CreateGraphics();

Методы класса

Graphics, включают 3 группы:
DrawString - вывод текста в графическом режиме
Draw (DrawEllipse, DrawLine) - рисование геометрических фигур цветным пером (объект класса Pen)
Fill (FillEllipse, FillRectangle) - рисование и закраска фигур кистью (объекты классов, производных от Brush)
Класс GraphicsКозьминых Н.М.Класс Graphics - это основной класс, необходимый для рисования, находится в пространстве имен DrawingGraphics graphPict

Слайд 4Класс Pen
Козьминых Н.М.
Рисование контура фигуры – методы группы Draw класса

Graphics
В конструкторе могут задаваться цвет и толщина пера
Pen penGreen

= new Pen(Color.Green, 3);
Класс перо, также имеет свойство стиль
penGreen.DashStyle = DashStyle.DashDot;

Класс PenКозьминых Н.М.Рисование контура фигуры – методы группы Draw класса GraphicsВ конструкторе могут задаваться цвет и толщина

Слайд 5Пример 1
Козьминых Н.М.
Graphics g = this.CreateGraphics(); // Создает графический объект

и связываем его с формой
g.Clear(Color.White) ; // цвет фона задаем

белым
// Рисуем линию определенного стиля
Pen pen1 = new Pen(Color.Blue, 3.0f); // создаем перо синего цвета и толщиной 3 пикселя
pen1.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; // задаем стиль пера
g.DrawLine(pen1, 20,120, 100,60); // рисуем линию
Пример 1Козьминых Н.М.Graphics g = this.CreateGraphics(); // Создает графический объект и связываем его с формойg.Clear(Color.White) ; //

Слайд 6Класс Brush
Козьминых Н.М.
Класс Brush задает кисти, является абстрактным, можно создавать

кисти классов-потомков Brush
Пять классов-потомков:
SolidBrush - для сплошной закраски области заданным

цветом
TextureBrush - для закраски области заданной картинкой (image)
HatchBrush - для закраски области предопределенным узором
LinearGradientBrush - для сплошной закраски с переходом от одного цвета к другому
PathGradientBrush - для сплошной закраски с переходом от одного цвета к другому
Класс BrushКозьминых Н.М.Класс Brush задает кисти, является абстрактным, можно создавать кисти классов-потомков BrushПять классов-потомков:SolidBrush - для сплошной

Слайд 7Пример 2
Козьминых Н.М.
// Рисуем закрашенный красный квадрат
SolidBrush sb1 = new

SolidBrush(Color.Red); // задаем заливку
g.FillRectangle(sb1, 60, 30, 40, 40); // рисуем

закрашенный квадрат

// Рисуем закрашенный прямоугольник и его окантовку
SolidBrush sb2 = new SolidBrush(Color.Yellow);
Pen pen2 = new Pen(Color.Aqua, 2.0f);
pen2.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
g.FillRectangle(sb2, 90,40, 60,45);
g.DrawRectangle(pen2, 90,40, 60,45);

Пример 2Козьминых Н.М.// Рисуем закрашенный красный квадратSolidBrush sb1 = new SolidBrush(Color.Red); // задаем заливкуg.FillRectangle(sb1, 60, 30, 40,

Слайд 8Пример 3
Козьминых Н.М.
// Рисуем закрашенный эллипс
System.Drawing.Drawing2D.HatchBrush hb1 = new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.DiagonalCross,

Color.Black, Color.Green);
g.FillEllipse(hb1, 30,100, 65,50);

// Рисуем наклонный эллипс
Pen pen3 = new

Pen(Color.Fuchsia, 2.0f);
pen3.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot;
g.ResetTransform();
g.RotateTransform(45);
g.DrawEllipse(pen3, 70, -10, 100, 50);

Пример 3Козьминых Н.М.// Рисуем закрашенный эллипсSystem.Drawing.Drawing2D.HatchBrush hb1 = new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.DiagonalCross, Color.Black, Color.Green);g.FillEllipse(hb1, 30,100, 65,50);// Рисуем наклонный эллипсPen

Слайд 9
Козьминых Н.М.
Graphics g =

this.CreateGraphics(); // Создает графический объект и связываем его с формой

g.Clear(Color.White) ; // цвет фона задаем белым
// Рисуем линию определенного стиля
Pen pen1 = new Pen(Color.Blue, 3.0f); // создаем перо синего цвета и толщиной 3пик
pen1.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; // задаем стиль пера
g.DrawLine(pen1, 20,120, 100,60); // рисуем линию

// Рисуем закрашенный красный квадрат
SolidBrush sb1 = new SolidBrush(Color.Red); // задаем заливку
g.FillRectangle(sb1, 60, 30, 40, 40); // рисуем закрашенный квадрат

// Рисуем закрашенный прямоугольник и его окантовку
SolidBrush sb2 = new SolidBrush(Color.Yellow);
Pen pen2 = new Pen(Color.Aqua, 2.0f);
pen2.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
g.FillRectangle(sb2, 90,40, 60,45);
g.DrawRectangle(pen2, 90,40, 60,45);

// Рисуем закрашенный эллипс
System.Drawing.Drawing2D.HatchBrush hb1 = new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.DiagonalCross, Color.Black, Color.Green);
g.FillEllipse(hb1, 30,100, 65,50);

// Рисуем наклонный эллипс
Pen pen3 = new Pen(Color.Fuchsia, 2.0f);
pen3.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot;
g.ResetTransform();
g.RotateTransform(45);
g.DrawEllipse(pen3, 70, -10, 100, 50);
Козьминых Н.М.      Graphics g = this.CreateGraphics(); // Создает графический объект и связываем

Слайд 10Пример 4
Козьминых Н.М.
Graphics g = this.CreateGraphics();
g.Clear(Color.White);
Point point1 = new Point(0,100);
Point

point2 = new Point(50,80);
Point point3 = new Point(100,20);
Point point4 =

new Point(150,80);
Point point5 = new Point(200,100);
Point[] curvePoints = {point1,point2,point3,point4,point5};
Pen pen = new Pen(System.Drawing.Color.Aquamarine, 2f);
g.DrawCurve(pen, curvePoints);
foreach (Point point in curvePoints)
g.FillRectangle(Brushes.Red, new Rectangle(point, new Size(5,5)));
Пример 4Козьминых Н.М.Graphics g = this.CreateGraphics();g.Clear(Color.White);Point point1 = new Point(0,100);Point point2 = new Point(50,80);Point point3 = new

Слайд 11Пример 5
Козьминых Н.М.

Пример 5Козьминых Н.М.

Слайд 12Пример 5, реализация
Козьминых Н.М.
Создать новый проект «Приложение Windows Forms»
Создать обработчик

события формы Paint: Form1_Paint
Записать код в обработчик события:
Graphics gr =

this.CreateGraphics();
gr.Clear(Color.White);
Запускаем на выполнение
Пример 5, реализацияКозьминых Н.М.Создать новый проект «Приложение Windows Forms»Создать обработчик события формы Paint: Form1_PaintЗаписать код в обработчик

Слайд 13Пример 5, реализация
Козьминых Н.М.

Пример 5, реализацияКозьминых Н.М.

Слайд 14Пример 5, реализация
Козьминых Н.М.
Создать два пера
Pen gray = new Pen(Color.Gray);
Pen

black = new Pen(Color.Black, 3F);

Нарисовать ось ОХ и нанести значение

координат
gr.DrawLine(gray, new Point(0, 0),
new Point(this.Width, 0));
for (int i = 0; i < this.Width; i+= 40)
gr.DrawString(i.ToString(), new Font("Arial", 10F), Brushes.Gray, new PointF(i, 5F));

Пример 5, реализацияКозьминых Н.М.Создать два пераPen gray = new Pen(Color.Gray);Pen black = new Pen(Color.Black, 3F);Нарисовать ось ОХ

Слайд 15Пример 5, реализация
Козьминых Н.М.

Пример 5, реализацияКозьминых Н.М.

Слайд 16Пример 5, реализация
Козьминых Н.М.
После определения пера добавить код переноса начала

координат
gr.TranslateTransform(30, this.Height - 80);

Дорисовать ось ОУ
gr.DrawLine(gray, new Point(0, 0),
new

Point(0, -this.Height));
Пример 5, реализацияКозьминых Н.М.После определения пера добавить код переноса начала координатgr.TranslateTransform(30, this.Height - 80);Дорисовать ось ОУgr.DrawLine(gray, new

Слайд 17Пример 5, реализация
Козьминых Н.М.

Пример 5, реализацияКозьминых Н.М.

Слайд 18Пример 5, реализация
Козьминых Н.М.
// Стена
Point pointLeftTop = new Point(0, -80);
gr.DrawRectangle(black,

new Rectangle(pointLeftTop, new Size(100, 80)));

// Крыша
Point[] trianglePoints = {

pointLeftTop,
new Point(50, -120),
new Point(100, -80)
};
gr.DrawPolygon(black, trianglePoints);

// Окна
Size window = new Size(30, 30);
gr.DrawRectangle(black, new Rectangle(new Point(10, -60), window));
gr.DrawRectangle(black, new Rectangle(new Point(60, -60), window));
Пример 5, реализацияКозьминых Н.М.// СтенаPoint pointLeftTop = new Point(0, -80);gr.DrawRectangle(black, new Rectangle(pointLeftTop, new Size(100, 80)));// КрышаPoint[] trianglePoints

Слайд 19Пример 5, реализация
Козьминых Н.М.

Пример 5, реализацияКозьминых Н.М.

Слайд 20Пример 5, реализация
Козьминых Н.М.
После кода с переносом начала координат, добавить

код масштабирования в 1.5 раза
gr.ScaleTransform(1.5F, 1.5F);

Пример 5, реализацияКозьминых Н.М.После кода с переносом начала координат, добавить код масштабирования в 1.5 разаgr.ScaleTransform(1.5F, 1.5F);

Слайд 21Пример 5, реализация
Козьминых Н.М.

Пример 5, реализацияКозьминых Н.М.

Слайд 22
Козьминых Н.М.
public partial class Form1 : Form {

public Form1() { InitializeComponent();

}
private void Form1_Paint(object sender, PaintEventArgs e) {
Graphics gr = this.CreateGraphics();
gr.Clear(Color.White);
Pen gray = new Pen(Color.Gray);
Pen black = new Pen(Color.Black, 3F);
// Перенос начала координат
gr.TranslateTransform(30, this.Height - 80);
// Масштабирование
gr.ScaleTransform(1.5F, 1.5F);
// Координатная ось OX
gr.DrawLine(gray, new Point(0, 0), new Point(this.Width, 0));
for (int i = 0; i < this.Width; i+= 40)
gr.DrawString(i.ToString(), new Font("Arial", 10F), Brushes.Gray, new PointF(i, 5F));
// Координатная ось OY
gr.DrawLine(gray, new Point(0, 0), new Point(0, -this.Height));
// Стена
Point pointLeftTop = new Point(0, -80);
gr.DrawRectangle(black, new Rectangle(pointLeftTop, new Size(100, 80)));
// Крыша
Point[] trianglePoints = {
pointLeftTop,
new Point(50, -120),
new Point(100, -80)
};
gr.DrawPolygon(black, trianglePoints);
// Окна
Size window = new Size(30, 30);
gr.DrawRectangle(black, new Rectangle(new Point(10, -60), window));
gr.DrawRectangle(black, new Rectangle(new Point(60, -60), window));
}
}
Козьминых Н.М. public partial class Form1 : Form {    public Form1() {

Слайд 23Вопросы…

Спасибо за внимание
Козьминых Н.М.

Вопросы…Спасибо за вниманиеКозьминых Н.М.

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика