Міністерство освіти і науки України
Кіровоградський національний технічний університет
Кафедра програмування та захисту інформації
Дисципліна : Візуальне програмування
Лабораторна робота №6
Тема: Робота з графікою
Тема: Робота з графікою
Мета: Навчитися реалізувати необхідні класи графічних об'єктів
Завдання до лабораторної роботи:
Намалювати у вікні Windows-додатку, методами бібліотеки System.Drawing.dll, наступні об’єкти:
- прямокутник, залитий суцільним пензлем;
- еліпс, залитий суцільним пензлем із границею;
- коло, залите суцільним пензлем із границею;
- будиночок, залитий суцільною кистю із границею (висота даху не менше 50 пікселів);
- заштрихований будиночок;
- коло, зафарбоване чорно-білими квадратами;
- квітку, що складається з жовтого кола та блакитних еліпсів;
- конверт, залитий суцільною кистю із границею (висота кришки конверта не менше 30 пікселів, відношення ширини до висоти 5 до 3, ширина кратна 5);
- заштрихований конверт.
Код
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace lab6visual
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Draw();
}
private void Draw()
{
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics graph = Graphics.FromImage(bmp);
Pen pen = new Pen(Color.OrangeRed);
SolidBrush brush = new SolidBrush(Color.Blue);
HatchBrush brush2 = new HatchBrush(
HatchStyle.Horizontal,
Color.Green,
Color.White);
HatchBrush brush3 = new HatchBrush(
HatchStyle.LargeCheckerBoard,
Color.White);
int x = 5, y = 5;
graph.FillEllipse(brush, 200, 10, 150, 75);
graph.DrawEllipse(pen, 200, 10, 150, 75);
graph.FillRectangle(brush, 10, 10, 150, 75);
graph.FillEllipse(brush3, 400, 10, 75, 75);
Point point = new Point(x, y);
Point pt3 = new Point(620, 20);
Point pt1 = new Point(520, 200);
Point pt2 = new Point(520, 100);
Point pt4 = new Point(720, 100);
Point pt5 = new Point(720, 200);
Point[] house = new Point[] { pt5, pt1, pt2, pt3, pt4};
GraphicsPath path = new GraphicsPath();
graph.FillEllipse(new SolidBrush(Color.Red), 200, 315, 75, 100);
graph.FillEllipse(new SolidBrush(Color.Red), 200, 450, 75, 100);
graph.FillEllipse(new SolidBrush(Color.Red), 225, 400, 100, 75);
graph.FillEllipse(new SolidBrush(Color.Red), 150, 400, 100, 75);
graph.FillEllipse(new SolidBrush(Color.GreenYellow), 200, 400, 75, 75);
Point pt32 = new Point(670, 250);
Point pt12 = new Point(520, 400);
Point pt22 = new Point(520, 300);
Point pt42 = new Point(820, 300);
Point pt52 = new Point(820, 400);
Point pt31 = new Point(900, 20);
Point pt11 = new Point(800, 200);
Point pt21 = new Point(800, 100);
Point pt41 = new Point(1000, 100);
Point pt51 = new Point(1000, 200);
GraphicsPath path1 = new GraphicsPath();
path1.AddLine(pt11, pt21);
path1.AddLine(pt31, pt41);
path1.AddLine(pt51, pt11);
graph.FillPath(brush2, path1);
path.AddLine(pt1, pt2);
path.AddLine(pt3, pt4);
path.AddLine(pt5, pt1);
graph.FillPath(brush, path);
graph.DrawPath(pen, path);
GraphicsPath path2 = new GraphicsPath();
path2.AddLine(pt12, pt22);
path2.Add...