Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по лабораторным.docx
Скачиваний:
0
Добавлен:
18.11.2022
Размер:
553.87 Кб
Скачать

Лабораторная работа №8

Задание:

1. Создать проект из одной формы двух кнопок.

2. При нажатии первой кнопки обеспечить вывод на экран вывести последовательность разноцветных овалов, вращаемую вокруг одной точки и иллюстрирующую эффект орбит электронов атома. Число овалов выбрать самостоятельно.

3. При нажатии на вторую кнопку обеспечить вращение нарисованных овалов вокруг заданной центральной точки. Интервал вращения выбрать самостоятельно.

Текст программы:

Главная форма проекта:

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 Компьютерная_графика__8

{

public partial class Form1 : Form

{

Graphics g;

Pen p = new Pen(Color.Orange, 3);

Rectangle r = new Rectangle(-90,-30,180,60);

int x = 1;

public Form1()

{

InitializeComponent();

g = this.CreateGraphics();

}

private void button1_Click(object sender, EventArgs e)

{

g.RotateTransform(45, MatrixOrder.Append);

g.TranslateTransform(200, 200, MatrixOrder.Append);

g.DrawEllipse(p, r);

g.ResetTransform();

g.RotateTransform(-45, MatrixOrder.Append);

g.TranslateTransform(200, 200, MatrixOrder.Append);

g.DrawEllipse(p, r);

g.ResetTransform();

g.RotateTransform(90, MatrixOrder.Append);

g.TranslateTransform(200, 200, MatrixOrder.Append);

g.DrawEllipse(p, r);

g.ResetTransform();

g.TranslateTransform(200, 200, MatrixOrder.Append);

g.DrawEllipse(p, r);

g.ResetTransform();

button2.Visible = true;

}

private void button2_Click(object sender, EventArgs e)

{

timer1.Start();

}

private void timer1_Tick(object sender, EventArgs e)

{

g.Clear(BackColor);

g.RotateTransform(45+x, MatrixOrder.Append);

g.TranslateTransform(200, 200, MatrixOrder.Append);

g.DrawEllipse(p, r);

g.ResetTransform();

g.RotateTransform(-45+x, MatrixOrder.Append);

g.TranslateTransform(200, 200, MatrixOrder.Append);

g.DrawEllipse(p, r);

g.ResetTransform();

g.RotateTransform(90+x, MatrixOrder.Append);

g.TranslateTransform(200, 200, MatrixOrder.Append);

g.DrawEllipse(p, r);

g.ResetTransform();

g.RotateTransform(0 + x, MatrixOrder.Append);

g.TranslateTransform(200, 200, MatrixOrder.Append);

g.DrawEllipse(p, r);

g.ResetTransform();

x++;

}

}

}

Контрольный пример:

Образец главной формы проекта:

Результат работы кнопки Рисунок:

Результат работы таймера: