Штрихпунктирная линия совершает движение по прямоугольной спирали до столкновения с краем формы - C#
Формулировка задачи:
Доброго времени суток! Помогите,пожалуйста, сделать штрихпунктирную линию фиксированного размера, которая из центра начинает своё движение по прямоугольной спирали до столкновения с краем формы, после чего исчезает и вновь появляется в центре... Пожалуйста
Решение задачи: «Штрихпунктирная линия совершает движение по прямоугольной спирали до столкновения с краем формы»
textual
Листинг программы
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace _4 { public partial class Form1 : Form { public bool draw = false; Graphics GraphForm; struct my_line { public Point first; public Point last; }; my_line my_lines; public Form1() { InitializeComponent(); } private void Form1_SizeChanged(object sender, EventArgs e) { this.WindowState = FormWindowState.Maximized; } private void запускToolStripMenuItem_Click(object sender, EventArgs e) { if (!draw) { draw = true; } timer1.Enabled = true; } private void остановкаToolStripMenuItem_Click(object sender, EventArgs e) { timer1.Enabled = false; } private void увеличениеToolStripMenuItem_Click(object sender, EventArgs e) { if (увеличениеToolStripMenuItem.Text == "Увеличение") { увеличениеToolStripMenuItem.Text = "Уменьшение"; } else { увеличениеToolStripMenuItem.Text = "Увеличение"; } } private void ускорениеToolStripMenuItem_Click(object sender, EventArgs e) { if (ускорениеToolStripMenuItem.Text == "Ускорение") { ускорениеToolStripMenuItem.Text = "Замедление"; timer1.Interval /= 4; } else { ускорениеToolStripMenuItem.Text = "Ускорение"; timer1.Interval *= 4; } } private void выходToolStripMenuItem_Click(object sender, EventArgs e) { if (MessageBox.Show("Выйти?", "Сообщение", MessageBoxButtons.OKCancel) == DialogResult.OK) Close(); } private void Form1_Load(object sender, EventArgs e) { Random rnd = new Random(); progressBar1.Maximum = 24; progressBar1.Value = 0; progressBar1.Step = 1; my_lines = new my_line(); my_lines.first.X = 660; my_lines.first.Y = 381; my_lines.last.X = 700; my_lines.last.Y = 390; } private void Form1_DoubleClick(object sender, EventArgs e) { Graphics g = panel1.CreateGraphics(); g.DrawString("Лабораторная работа №4 Макрушко Катерины", new Font("Times New Roman", 12), new SolidBrush(Color.Black), 0, 0); } private void timer1_Tick(object sender, EventArgs e) { Pen p = new Pen(Color.Black, 3); Graphics g = this.CreateGraphics(); g.Clear(this.BackColor); g.DrawLine(p, my_lines.first, my_lines.last); my_lines.first.X += 50; my_lines.last.X += 50; if (progressBar1.Value == progressBar1.Maximum) { progressBar1.Value = 0; } progressBar1.PerformStep(); this.Refresh(); } /* private void Form1_Paint(object sender, PaintEventArgs e) { Random rnd = new Random(); if (draw) { t.draw(e.Graphics, Color.FromArgb(rnd.Next(0,255),rnd.Next(0,255),rnd.Next(0,255))); } /* Graphics g = e.Graphics; Pen p = new Pen(Color.Black, 3); g.DrawLine(p, 660, 381, 700, 390); }*/ } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д