2 семестр / №3 ЯП Бунина А.В
.docxМИНОБРНАУКИ РОССИИ
Федеральное государственное образовательное учреждение высшего
образования
«Юго-Западный государственный университет»
Кафедра программной инженерии
Лабораторная работа №3
По дисциплине «Языки программирования»
Выполнил: студент группы ИБ-01б
Бунина А.В.
Проверила: доцент
Белова Т.М.
Курск, 2021
1.1 Написать программу, выводящую на экран изображение плывущего корабля. Фоном могут быть море, берег, деревья.
Начало
Graphics
g = pictureBox1.CreateGraphics();
int
i = 0;
bmp;
I++;
Рисуем корабль, море, небо, облака, лучи
солнца, к координате лодки прибавляем
i;
bmp
System.Threading. Thread.Sleep(50)
Конец
1.2 Текст программы
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(bmp);
pictureBox1.Image = bmp;
}
int i = 0;
private void timer1_Tick(object sender, EventArgs e)
{
i++;
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(bmp);
SolidBrush Sea = new SolidBrush(Color.CornflowerBlue);
SolidBrush Sky = new SolidBrush(Color.Indigo);
SolidBrush Parus = new SolidBrush(Color.Lavender);
SolidBrush koradl = new SolidBrush(Color.Maroon);
SolidBrush Сloud = new SolidBrush(Color.White);
Pen parus = new Pen(Color.Lavender, 5);
Pen Cloud = new Pen(Color.White, 3);
Pen machta = new Pen(Color.SaddleBrown, 5);
g.FillRectangle(Sea, 0, 0, 890, 470);
g.FillRectangle(Sky, 0, 0, 890, 230);
g.DrawEllipse(Cloud, 300, 30, 250, 50);
g.DrawEllipse(Cloud, 500, 50, 140, 30);
g.DrawEllipse(Cloud, 50, 10, 70, 20);
g.DrawEllipse(Cloud, 50, 70, 150, 70);
g.FillEllipse(Сloud, 300, 30, 250, 50);
g.FillEllipse(Сloud, 500, 50, 140, 30);
g.FillEllipse(Сloud, 50, 10, 70, 20);
g.FillEllipse(Сloud, 50, 70, 150, 70);
g.DrawLine(machta, 240 + i, 350, 240 + i, 180);
g.DrawArc(parus, 190 + i, 200, 100, 150, 90, -180);
g.FillPie(Parus, 190 + i, 200, 100, 150, 90, -180);
g.DrawLine(machta, 180 + i, 350, 180 + i, 180);
g.DrawArc(parus, 130 + i, 200, 100, 150, 90, -180);
g.FillPie(Parus, 130 + i, 200, 100, 150, 90, -180);
g.DrawLine(machta, 120 + i, 350, 120 + i, 180);
g.DrawArc(parus, 70 + i, 200, 100, 150, 90, -180);
g.FillPie(Parus, 70 + i, 200, 100, 150, 90, -180);
Point p1 = new Point(50 + i, 310);
Point p2 = new Point(100 + i, 360);
Point p3 = new Point(300 + i, 360);
Point p4 = new Point(350 + i, 310);
Point[] pp = { p1, p2, p3, p4 };
g.FillPolygon(koradl, pp);
pictureBox1.Image = bmp;
System.Threading.Thread.Sleep(50);
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = !timer1.Enabled;
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
}
}
1.3 Результат работы программы