Generer des points aleatoirement !? [Résolu]

Signaler
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
-
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
-
Bonjour a tous ,

Je suis sous visual studio . net et j'apprends le c sharp !

Je me suis fait une class que j'ai nomme MyPoint.cs que voici :
-----------------------------------------------------------------
using System;
using System.Drawing;


namespace WiNAppliLabo3
{


public class MyPoint
{
private int x=0, y=0;
private Color col = new Color();



public MyPoint()
{

}

//Methode GetX retourne la valeur X du point
public int GetX()
{
return x;
}

//Methode GetY retourne la valeur Y du point
public int GetY()
{
return y;
}

//Methode GetColor retourne la couleur du point
public Color GetColor()
{
return col;
}

//Methode SetPoint définit la position du point
public void SetPoint(int X, int Y)
{
x = X;
y = Y;
}

//Methode SetColor définit la couleur du point
public void SetColor(int R, int G, int B)
{
col= Color.FromArgb(R, G, B);
}


//Methode Méthode 2 de définition de la couleur
public void SetColor(Color color)
{
col=color;
}

//Methode Draw permettant de dessiner le point dans une fenêtre
public void Draw(Graphics dc)
{
Bitmap Bmp= new Bitmap(1,1);
Bmp.SetPixel (0, 0, col);
dc.DrawImage (Bmp, x, y);
}


}
}

cette classe a plusieurs methodes afin de permettre la creation de points

dans ma fenetre windows je veux qu'au lancement, elle me genere des points aleatoirement voila ce que j'ai fait mais a l'affichage je n'ai rien du tout meme pas d'erreur rien !
si quelqu'un avait une idée de se qui se passe je lui en serait reconnaissant ....

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;


namespace WiNAppliLabo3
{


/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
/** declaration de 100.000 points **/
MyPoint[] LesPoints = new MyPoint[100000];
[STAThread]
static void Main()
{
Application.Run(new Form1());

}


private void Draw(object sender, System.Windows.Forms.PaintEventArgs e)
{
foreach (MyPoint pt in LesPoints)
{
pt.Draw (e.Graphics);


}
}
/** chargement doit dessiner 100.000 points sur la form **/


private void Form1_Load(object sender, System.EventArgs e)
{
int x,y, r, g, b,i=0;
Random rnd = new Random();
for (i=0; i<LesPoints.Length; i++)
{
x=rnd.Next(ClientSize.Width);
y=rnd.Next(ClientSize.Height);
r=rnd.Next(255);
g=rnd.Next(255);
b=rnd.Next(255);
LesPoints[i] = new MyPoint();
LesPoints[i].SetPoint(x, y);
LesPoints[i].SetColor(r,g ,b );
}


}
}
}

Je vous remercie ...
Bon week end

Christophe

6 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
ta méthode "Draw" est bien associé à l'event Paint de Form1 ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
ba tu dessines ton point.

(très) basiquement :

MyPoint point = new MyPoint();
point.SetPoint(e.X, e.Y);
point.SetColor(Color.Black);
point.Draw(this.CreateGraphics());

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008

Salut salut,

C'etait exactement ca ....;-( ! Bien joué ....
Si je peux me permettre une derniere question .....maintenant j'aimerais et ce toujours avec la meme classe ....genere lors d'un clic de souris un point avec les coordonnees x et y sur la form!
comment je dois faire ...

J'arrive bien a affiche les coordonnees e.X et e.Y !
si tu savais m'aider .....je t'en serais reconnaissant ...
Bonne semaine

Christophe
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
ben tu as juste a te servir de ta méthode SetPoint pour les coordonnées et Draw pour dessiner le point en question non ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008

re,

tu vis sur codes sources ;-)
Beh moi aussi tu vois je suis pas porgrammeur mais j'aime bien apprendre ....

bon si j'ai bien compris
je fais un event mousedown....?

JE SUIS DANS LE BON ? et puis ensuite je fais comment ?

merci

private
void OnMouseDown(
object sender, System.Windows.Forms.MouseEventArgs e)


{


}
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008

salut salut coq,

C'est exactement ce qu'il me fallait ...

Je te remercie pour ce bout de code qui tourne ...

Bonne semaine ....

Christophe