Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Circolo - Form1.cs

Form1.cs

Caricato da: Poggi Marco
Scarica il programma completo

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace Circolo
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         public Form1()
  16.         {
  17.             InitializeComponent();
  18.         }
  19.  
  20.         private VettoreCircolare<PointF> registro = null;
  21.         private Tela foglio = null;
  22.  
  23.         private void Form1_Load(object sender, EventArgs e)
  24.         {
  25.             trackBarEstremi.Minimum = 10;
  26.             trackBarEstremi.Maximum = 2000;
  27.             trackBarEstremi.Value = 200;
  28.             trackBarIncremento.Minimum = 2;
  29.             trackBarIncremento.Maximum = 50;
  30.             trackBarIncremento.Value = trackBarIncremento.Minimum;
  31.             foglio = new Tela(pictureBoxFoglio.Size.Width, pictureBoxFoglio.Size.Height, -1.4f, -1.05f, 1.4f)
  32.             {
  33.                 Penna = new Pen(Color.FromArgb(0, 120, 40), 1)
  34.             };
  35.             labelEstremi.Text = String.Format("Punti: {0}", trackBarEstremi.Value);
  36.             labelIncremento.Text = string.Format("Incremento: {0}", trackBarIncremento.Value);
  37.             registro = new VettoreCircolare<PointF>();
  38.             Traccia(trackBarEstremi.Value, trackBarIncremento.Value);
  39.         }
  40.  
  41.         private void TrackBarEstremi_Scroll(object sender, EventArgs e)
  42.         {
  43.             labelEstremi.Text = String.Format("Punti: {0}", trackBarEstremi.Value);
  44.             Traccia(trackBarEstremi.Value, trackBarIncremento.Value);
  45.         }
  46.  
  47.         private void TrackBarIncremento_Scroll(object sender, EventArgs e)
  48.         {
  49.             labelIncremento.Text = string.Format("Incremento: {0}", trackBarIncremento.Value);
  50.             Traccia(trackBarEstremi.Value, trackBarIncremento.Value);
  51.         }
  52.  
  53.         private void Traccia(int estremi, int passo)
  54.         {
  55.             CaricaPunti(estremi);
  56.             foglio.Cancella(Color.FromArgb(10, 5, 2));
  57.             foglio.Assi(new Pen(Color.FromArgb(125, 125, 125), 1));
  58.             Tratto segmento = new Tratto(0f, 0f, 0f, 0f);
  59.             for (int i=0; i<estremi; i++)
  60.             {
  61.                 segmento.inizio = registro[i];
  62.                 segmento.fine = registro[i * passo];
  63.                 foglio.Linea(segmento);
  64.             }
  65.             pictureBoxFoglio.Image = foglio.Disegno;
  66.         }
  67.  
  68.         private void CaricaPunti(int estremi)
  69.         {
  70.             if (estremi != registro.Dimensione())
  71.             {
  72.                 registro.Cancella();
  73.                 double alfa, passo;
  74.                 passo = Math.PI * 2.0 / estremi;
  75.                 PointF nuovo = new PointF();
  76.                 for (int i=0; i<estremi; i++)
  77.                 {
  78.                     alfa = i * passo;
  79.                     nuovo.X = (float)Math.Cos(alfa);
  80.                     nuovo.Y = (float)Math.Sin(alfa);
  81.                     registro.Aggiungi(nuovo);
  82.                 }
  83.             }
  84.         }
  85.  
  86.     }
  87. }