pragma once Hard / Занятие 11
.docРабота с графикой
Создайте следующую форму:
private: System::Void линияToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
//создаем объект класса Graphics
Graphics^ Gr =this->CreateGraphics();
//очистка области рисования путем ее окрашивания в цвет формы
Gr->Clear(SystemColors::Control);
int h=menuStrip1->Height;//высота меню
//рисуем черную линию толщиной 1 из точки(10,h+10) до (70,h+10)
Gr->DrawLine(System::Drawing::Pens::Black, 10,h+10,70,h+10);
//создаем перо красного цвета
Pen^ P=gcnew Pen(Color::Red);
//задаем стиль пунктирных линий
P->DashStyle = System::Drawing::Drawing2D::DashStyle::DashDotDot;
P->Width=3; //ширина пера (по умолчанию в точках)
//рисуем линию с помощью пера
Gr->DrawLine(P,10, h+40, 70, h+40);
}
private: System::Void прямоугольникToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
//создаем объект класса Graphics
Graphics^ Gr =this->CreateGraphics();
//очистка области рисования путем ее окрашивания в цвет формы
Gr->Clear(SystemColors::Control);
int h=menuStrip1->Height;//высота меню
int h1=this->ClientSize.Height; //высота внутренней области формы
int w=this->ClientSize.Width; //ширина внутренней области формы
//создаем перо черного цвета
Pen^ P=gcnew Pen(Color::Black);
//создаем кисть для "закрашивания" фигур
Brush^ B=gcnew SolidBrush(Color::Yellow); //сплошная
//рисуем закрашенный прямоугольник( , x, y, width, height )
Gr->FillRectangle(B,10,10+h,w-20,h1-20-h);
//рисуем контур
Gr->DrawRectangle(P,10,10+h,w-20,h1-20-h);
}
private: System::Void эллипсToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
//создаем объект класса Graphics
Graphics^ Gr =this->CreateGraphics();
//очистка области рисования путем ее окрашивания в цвет формы
Gr->Clear(SystemColors::Control);
int h=menuStrip1->Height;//высота меню
int h1=this->ClientSize.Height; //высота внутренней области формы
int w=this->ClientSize.Width; //ширина внутренней области формы
//создаем перо черного цвета
Pen^ P=gcnew Pen(Color::Black);
//создаем кисть для "закрашивания" фигур
Brush^ B=gcnew SolidBrush(Color::Yellow); //сплошная
//рисуем эллипс, определенный ограничивающим прямоугольником
Gr->FillEllipse(B,10,10+h,w-20,h1-20-h); //закрашенный
Gr->DrawEllipse(P,10,10+h,w-20,h1-20-h); //контур
}
private: System::Void секторToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
//создаем объект класса Graphics
Graphics^ Gr =this->CreateGraphics();
//очистка области рисования путем ее окрашивания в цвет формы
Gr->Clear(SystemColors::Control);
int h=menuStrip1->Height;//высота меню
int h1=this->ClientSize.Height; //высота внутренней области формы
int w=this->ClientSize.Width; //ширина внутренней области формы
//создаем перо черного цвета
Pen^ P=gcnew Pen(Color::Black);
//создаем кисть для "закрашивания" фигур
Brush^ B=gcnew SolidBrush(Color::Yellow); //сплошная
//рисуем сектор
//10,10+h - левый верхний угол прямоуольника
//w-20 - ширина прямоугольника
//h1-20-h - высота пямоугольника
//90 - угол (в градусах), который измеряется по часовой стрелке,
// начиная от оси X и заканчивая первой стороной сектора
//150 - угол (в градусах), который измеряется по часовой стрелке,
// начиная от первой стороны сектора и заканчивая второй стороной
Gr->FillPie(B,10,10+h,w-20,h1-20-h,90,150); //закрашенный
Gr->DrawPie(P,10,10+h,w-20,h1-20-h,90,150); //контур
}
private: System::Void текстToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
//создаем объект класса Graphics
Graphics^ Gr =this->CreateGraphics();
//очистка области рисования путем ее окрашивания в цвет формы
Gr->Clear(SystemColors::Control);
int h=menuStrip1->Height;//высота меню
int h1=this->ClientSize.Height; //высота внутренней области формы
int w=this->ClientSize.Width; //ширина внутренней области формы
String^ st="Мой текст";
//выводим текст шрифтом, заданным значением свойства Font формы
Gr->DrawString(st,this->Font,Brushes::Blue, 10, 10+h);
//создаем кисть
Brush^ B=gcnew SolidBrush(Color::Green); //сплошная
//определяем свой шрифт
System::Drawing::Font^ F=gcnew System::Drawing::Font("Times New Roman",12,FontStyle::Italic);
//определяем размер области отображения текста своим шрифтом
int tw = (int) Gr->MeasureString(st,F).Width;
int th = (int) Gr->MeasureString(st,F).Height;
//вычисляем координаты левого верхнего угла текста, расположенного в центре формы
int x=(w-tw)/2;
int y=(h1-h-th)/2;
//выводим текст в центре формы
Gr->DrawString(st,F,B,x,y);
}
private: System::Void рисунокToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
//создаем объект класса Graphics
Graphics^ Gr =this->CreateGraphics();
//очистка области рисования путем ее окрашивания в первоначальный цвет формы
Gr->Clear(SystemColors::Control);
//создаем объект для работы с изображением
Image^ I=Image::FromFile("D:\\Зима.jpg");
//выводим рисунок
Gr->DrawImage(I,10,10);
}