Rectangles

Soyez le premier à donner votre avis sur cette source.

Vue 6 720 fois - Téléchargée 487 fois

Description

Ce code montre l'usage des propriétés et indexeurs.

Il permet de créer des rectangles et de les aligner.

Le source contient des exemples d'utilisation.
- Alignement
- Homothétie
- Géométrie basique

Redimensionnez la fenêtre pour tester :-)

Source / Exemple :


// Créer des points
Point a=new Point(0,0);
Point b=new Point(10,10);

// Ajouter un offset
Point c=a+2; // Donne c(2,2)

// Ajouter des coordonnées
Point d=a+b; // Donne d(12,12)

// Calculer un point milieu
Point n=(a+b)/2

//Créer une ligne
Line l=new Line(a,b);

//Accéder à un point d'une ligne
Point m=l[0.5]; // Point milieu (a+b)/2
Point p=l[0]; // p==a
Point q=l[1]; // p=b

//Créer un rectangle
Rectangle r1=new Rectangle(a,b);//Points opposés
Rectangle r2=new Rectangle(1,2,3,4);// gauche,haut,droite,bas

//Accéder à un point d'un rectangle
Point x=r1.middleTop;//Milieu du côté supérieur
Point xp=r1[0,0.5];//Milieu du côté supérieur (.middleTop en est un alias)

//Accéder à la gauche
int gauche=r1.left;

//Aligner les centres
r1[0.5,0.5]=r2[0.5,0.5];
//Aligner le centre de r1 avec le coin inférieur droit de r2
r1[0.5,0.5]=r2[1,1];

//Redimensionner r1 pour qu'il rentre dans r2 en gardant ses proportions
r1.fill(r2)

Conclusion :


Avec ces classes, vous pouvez plus facilement calculer la position de divers éléments et les aligner.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_loloof64
Messages postés
350
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012
-
Merci beaucoup Kriss pour ta réponse :)

(Pas de problème pour le tutoiement, je vois les membres comme une "famille de codeurs", alors ca ne me dérange pas du tout.)
krissssss
Messages postés
88
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 janvier 2007
-
En java, tu fais
class Foo implements Serializable
...

En C#
[Serializable()]
class Foo
...

Puis après, dans les 2 langages il existe des fonctions/objets pour sérialiser. Par exemple, en java tu utilise un "object writer".

En C#, il en va de même :
MySerializableClass myObject = new MySerializableClass();
XmlSerializer mySerializer = new XmlSerializer(typeof(MySerializableClass));
StreamWriter myWriter = new StreamWriter("myFileName.xml");
mySerializer.Serialize(myWriter, myObject);
myWriter.Close();

Amuses-toi bien.(Qui tutoies est tutoyé:-p)
cs_loloof64
Messages postés
350
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012
-
Merci Krisss pour ta réponse,

qu'appelles-tu par étiquetter une classe ? (La sérialisation m'est peut être finallement inconnue même en Java, car pour moi sérialiser siginifiait simplement sauvegarder ses classes dans des fichiers avec les classes de Flux sortants => FileOutputStream par exemple)
cs_loloof64
Messages postés
350
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012
-
Au fait Lutinore,
-> merci pour la remarque pour le mot clé static pour la surcharge d'opérateurs
-> il peut utiliser System.StringBuilder pour concaténer plusieures chaines ? (Je le faisais avec qqch d'équivalent en Java)
-> Admettons que je surcharge (ou definisse dans ce cas-ci) la méthode paint d'une PictureBox juste pour réaliser un plateau de Puissance4 (nom déposé ici, désolé, ca sera plus explicite) SANS animation de la chute des pions joués : me recommanderiez-vous quand même d'utiliser la technique du double buffer ? (Ceux qui ont consultés mes sources Java ont peut être dû s'apercevoir que je ne le fais jamais.)

Merci beaucoup à toi ou à ceux qui lisent mon commentaires, et merci d'avance aux personnes qui y répondront .
krissssss
Messages postés
88
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 janvier 2007
-
Apparemment, pour sérialiser, il suffit d'étiqueter la classe comme en Java.

Ensuite, on peut exclure des membres en les étiquetant aussi.

J'implémente la dite interface "ICloneable" maintenant.(C'est plus propre)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.