Штрихпунктирная линия совершает движение по прямоугольной спирали до столкновения с краем формы - 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);
- }*/
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д