winforms
Download
Skip this Video
Download Presentation
Графика в WinForms

Loading in 2 Seconds...

play fullscreen
1 / 11

Графика в WinForms - PowerPoint PPT Presentation


  • 184 Views
  • Uploaded on

Лекция. Графика в WinForms. Рисование в WinForms. Поверхность рисования - объект Graphics Control.CreateGraphics () Инструменты рисования Pen Brush Графические примитивы Line Rectangle Ellipse Image Text. Draw… Fill…. Класс Color.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Графика в WinForms' - mayes


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
winforms1
Рисование в WinForms
  • Поверхность рисования - объект Graphics

Control.CreateGraphics()

  • Инструменты рисования

Pen

Brush

  • Графические примитивы

Line

Rectangle

Ellipse

Image

Text

Draw…

Fill…

color
Класс Color

publicstaticColorFromArgb(intargb);

publicstaticColorFromArgb(int alpha, ColorbaseColor);

publicstaticColorFromArgb(int red, int green, int blue);

publicstaticColorFromArgb(int a, int r, int g, int b);

publicstaticColorFromName(string name);

slide4
Класс Pen

public Pen(Brushbrush);

public Pen(Colorcolor);

public Pen(Brushbrush, float width);

public Pen(Colorcolor, float width);

brush
Класс Brush

System.Drawing.Brush      System.Drawing.Drawing2D.HatchBrush      System.Drawing.Drawing2D.LinearGradientBrush      System.Drawing.Drawing2D.PathGradientBrushSystem.Drawing.SolidBrushSystem.Drawing.TextureBrush

slide6
Нарисовать что-то на чем-нибудь

1-й способ.

  • Получить объект Graphics.
  • Приготовить инструмент.
  • Вызвать метод рисования.

2-й способ.

Сделать то же в обработчике события Paint.

slide7
Рисование мышью

Обработать события MouseDown, MouseMove, MouseUp

boolisDrawing;// флаг рисования (true– идет отрисовка)

Point last; // последняя нарисованная точка

privatevoid panel1_MouseDown(object sender, MouseEventArgs e)

{

isDrawing = true;

last = e.Location;

}

privatevoid panel1_MouseMove(object sender, MouseEventArgs e)

{

if (isDrawing)

{

Graphics g = panel1.CreateGraphics();

g.DrawLine(Pens.Blue, last, e.Location);

last = e.Location; // comment it!

}

}

privatevoid panel1_MouseUp(object sender, MouseEventArgs e)

{

isDrawing = false;

}

paint
Обработка события Paint

List<Point> points = newList<Point>();

boolisDrawing;

privatevoid panel1_MouseDown(object sender, MouseEventArgs e)

{

points = newList<Point>();

points.Add(e.Location);

isDrawing = true;

}

privatevoid panel1_MouseMove(object sender, MouseEventArgs e)

{

if (isDrawing){

points.Add(e.Location);

Graphics g = panel1.CreateGraphics();

for (inti = 0; i < points.Count - 1; i++)

g.DrawLine(Pens.Blue, points[i], points[i + 1]);

}

}

privatevoid panel1_MouseUp(object sender, MouseEventArgs e)

{

isDrawing = false;

}

privatevoid panel1_Paint(object sender, PaintEventArgs e)

{

for(inti = 0; i < points.Count - 1; i++)

e.Graphics.DrawLine(Pens.Blue, points[i], points[i + 1]);

}

slide9
Рисование модели

Picture – коллекция линий

Line – коллекция точек

classPicture

{

List<Line> lines = newList<Line>();

publicboolIsDrawing {set; get;}

internalvoid Add(Lineline)

{

lines.Add(line);

}

internalvoidAddPoint(Pointpoint)

{

Line last = lines[lines.Count - 1];

last.AddPoint(point);

}

internalvoid Draw(Graphics g)

{

foreach (var line in lines)

line.Draw(g);

}

}

classLine

{

List<Point> points;

public Line(Point p)

{

points = newList<Point>();

points.Add(p);

}

publicvoidAddPoint(Point p)

{

points.Add(p);

}

internalvoid Draw(Graphics g)

{

g.DrawLines(Pens.Blue, points.ToArray());

}

}

slide10
Графический редактор

Figure – абстрактная фигура

Picture – коллекция фигур

Фигура – линия, прямоугольник, эллипс

Выбрать тип фигуры

Начать рисование фигуры

Добавить точку к фигуре

Закончить рисование фигуры

Выбрать цвет линии

Выбрать цвет заливки

Сохранить рисунок в файле

Восстановить из файла

Представление

slide11
Самостоятельно
  • Написать программу “Графический редактор”, которая позволяет:
    • рисовать при помощи кривых, отрезков, прямоугольников и эллипсов;
    • выбирать цвет контура и заливки;
    • сохранять и загружать сделанные в редакторе рисунки из файлов.
ad