lab15

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace lab15
{
public partial class Form1 : Form
{
bool FlagOfClick;
Point[] Summits;
Point[][] Poly;
Rectangle[] Rec;
int CountOfPoly, CountOfSummits, CountOfSP;
Point temp;
public Form1()
{
CountOfPoly = 0;
CountOfSummits = 0;
CountOfSP = 0;
FlagOfClick = false;
Summits = new Point[255];
Poly = new Point[255][];
Rec = new Rectangle[1];
InitializeComponent();
}
private void поЩелчкуToolStripMenuItem_Click(object sender, EventArgs e)
{
if (FlagOfClick == true) FlagOfClick = false;
else FlagOfClick = true;
}
private void Painting(object sender, PaintEventArgs e)
{
for (int i = 0; i != CountOfSummits; ++i)
e.Graphics.FillEllipse(Brushes.Black, new Rectangle(Summits[i].X - 2, Summits[i].Y - 2, 4, 4));
for (int i = 0; i != CountOfPoly; ++i)
if(Poly[i].Length > 1) e.Graphics.DrawPolygon(Pens.Black, Poly[i]);
e.Graphics.DrawRectangles(Pens.Black, Rec);
}
private void UpMouse(object sender, MouseEventArgs e)
{
if (FlagOfClick == true)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
temp = new Point(e.X, e.Y);
Summits[CountOfSummits] = temp;
CountOfSP++;
CountOfSummits++;
}
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
Poly[CountOfPoly] = new Point[CountOfSP];
for (int i = 0 , temp = CountOfSummits - CountOfSP; i != Poly[CountOfPoly].Length; ++i, ++temp)
Poly[CountOfPoly][i] = Summits[temp];
CountOfSP = 0;
CountOfPoly++;
}
Invalidate();
}
}
private void случайныеПрямоугольникиToolStripMenuItem_Click(object sender, EventArgs e)
{
FlagOfClick = false;
Random Count = new Random((int)DateTime.Now.Ticks & 0x0000FFFF);
Rec = new Rectangle[Count.Next(1,20)];
for (int i = 0; i != Rec.Length; ++i)
{
System.Threading.Thread.Sleep(2);
Random x = new Random((int)DateTime.Now.Ticks & 0x0000FFFF);
System.Threading.Thread.Sleep(2);
Random y = new Random((int)DateTime.Now.Ticks & 0x0000FFFF);
System.Threading.Thread.Sleep(2);
Random x1 = new Random((int)DateTime.Now.Ticks & 0x0000FFFF);
System.Threading.Thread.Sleep(2);
Random y1 = new Random((int)DateTime.Now.Ticks & 0x0000FFFF);
Rec[i] = new Rectangle(x.Next(this.ClientSize.Width - 100), y.Next(this.ClientSize.Height - 100), x1.Next(100), y1.Next(100));
}
Invalidate();
}
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Создайте оконное приложение Windows Forms, которое рисует многоугольники.\n"+
"Если в меню выбран пункт «Рисовать по щелчку», то приложение рисует\n"+
"на форме многоугольники с вершинами, заданными щелчками левой клавиши\n"+
"мыши. При нажатии на правую клавишу мыши многоугольник завершается,\n"+
"и последующие нажатия на левую клавишу приводят к созданию нового\n"+
"многоугольника. Если в меню выбран пункт «Случайные прямоугольники»,\n"+
"то приложение создает серию прямоугольников со случайными параметрами\n"+
"и отображает их на форме (используйте метод Graphics.DrawRectangles).\n"+
"Cделал: Дубровский Николай\n"+
"Группа: 5-ПМИ-095");
}
}
}