Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [Vb.Net] Piano Cartesiano
Forum - C# / VB.NET - [Vb.Net] Piano Cartesiano

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
salva94 (Normal User)
Rookie


Messaggi: 57
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 22:09
Giovedì, 27/05/2010
Vorrei sapere se è possibile creare una struttura interna che memorizzi punti ed altri elementi dotati di coordinate cartesiane, creare un controllo che consenta all'utente di piazzare elementi su un piano cartesiano in vb.net

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 966
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 22:38
Giovedì, 27/05/2010
Cosa devi fare esattmente?
Visita http://msdn.microsoft.com/it-it/library/system.drawing.gra ..., potrebbe esserti d' aiuto.


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
salva94 (Normal User)
Rookie


Messaggi: 57
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 23:26
Giovedì, 27/05/2010
In pratica voglio fare un grafico unendo i vari punti del piano cartesiano  , però non so come crearlo , infatti l'unico metodo per farlo è praticamente posizionare vari label a determinate distanze e collegarli fra di loro con elementi Graphic . Posto un Esempio di quello ottenuto fino ad ora .


salva94 ha allegato un file: grafico.jpg (22704 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 966
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 14:29
Venerdì, 28/05/2010
Scusa, intendi fare una cosa del genere:
(vedi allegato).


Poggi Marco ha allegato un file: Immagine.PNG (45286 bytes)
Clicca qui per guardare l'immagine


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
salva94 (Normal User)
Rookie


Messaggi: 57
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 16:23
Venerdì, 28/05/2010
non riesco a visualizzare l'immagine

PM Quote
Avatar
salva94 (Normal User)
Rookie


Messaggi: 57
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 17:01
Venerdì, 28/05/2010
Si adesso la vedo,  si pi o meno così solo che a me unendo i vari punti vengono linee rette e non ondulate.. come haif atto?

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 966
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 21:27
Venerdì, 28/05/2010
Io ho disegnato la funzione seno. Per disegnarlo ho semplicemente unito tra di loro tanti punti - 500 - con il metodo DrawLine.


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
salva94 (Normal User)
Rookie


Messaggi: 57
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 23:12
Venerdì, 28/05/2010
e la linea ondulata come la hai fatta?

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 966
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 23:33
Venerdì, 28/05/2010
Testo quotato

Postato originariamente da salva94:

e la linea ondulata come la hai fatta?



Posto il codice:
Codice sorgente - presumibilmente C#

  1. private void Disegna_Click(object sender, EventArgs e)
  2.         {
  3.             Graphics piano = Foglio.CreateGraphics();
  4.             Point p1 = new Point(0,0);
  5.             Point p2=new Point(0,0);
  6.             int MaxX = 0, MaxY = 0, x0=0, y0=0;
  7.             MaxX = Foglio.Width;
  8.             MaxY = Foglio.Height;  // calcola le dimensioni del grafico
  9.             double i = -1, fine = 6.3, scala = 0.0, dx=0.0;
  10.             dx = (fine - i) / 500.0;  // Calcolo dell' incremento della x
  11.             scala = MaxX /(fine-i);
  12.             x0 =(int) Math.Abs((i * scala));
  13.             y0 = (int) (MaxY / 2.0);
  14.             funzione retta=new funzione();  // creo un oggetto funzione - classe in cui
  15.                                          // ho implementato la funzione sen(x) -
  16.             Pen penna = new Pen(Color.Cyan, 1);
  17.             p1.X = (int)(i * scala);
  18.             p1.Y = (int)(y0 - scala * retta.fun(i));
  19.             while (i <= fine)
  20.             {
  21.                 i += dx;
  22.                 p2.X = (int)(x0+i * scala);
  23.                 p2.Y=(int)(y0-scala*retta.fun(i));
  24.                 piano.DrawLine(penna, p1, p2);    
  25.                 p1.X=p2.X;
  26.                 p1.Y=p2.Y;
  27.             }
  28.             penna.Color = Color.Black;  // disegno degli assi
  29.             p1.X = x0;
  30.             p1.Y = 0;
  31.             p2.X = x0;
  32.             p2.Y = MaxY;
  33.             piano.DrawLine(penna, p1, p2);
  34.             p1.X = 0;
  35.             p1.Y = y0;
  36.             p2.X = MaxX;
  37.             p2.Y = y0;
  38.             piano.DrawLine(penna, p1, p2);
  39.             penna.Dispose();
  40.             piano.Dispose();
  41.         }


Ultima modifica effettuata da Poggi Marco il 28/05/2010 alle 23:53


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo