OVH Cloud OVH Cloud

Soustraction de Point

3 réponses
Avatar
Bismark Prods
Bonjour,

Connaissez-vous un moyen moins couteux de faire une soustraction de
coordonnées que celle que j'ai actuellement :

Point pt1 = new Point(10,10);
Point pt2 = new Point(32,22);
Point pt3 = new Point();
pt3 = pt2 - (Size)pt1; -> sans boxer ?
MessageBox.Show("PT3 : " + pt3.ToString());

Merci

Bismark

3 réponses

Avatar
Zazar
Bonjour


Connaissez-vous un moyen moins couteux de faire une soustraction de
coordonnées que celle que j'ai actuellement :

Point pt1 = new Point(10,10);
Point pt2 = new Point(32,22);
Point pt3 = new Point();


C'est inutile d'allouer un nouveau Point alors qu'il ne sera pas utilisé.

pt3 = pt2 - (Size)pt1; -> sans boxer ?


Il n'y a pas de boxing ici, seulement un cast. Le boxing c'est la création
d'un objet sur le tas pour référencer un type valeur.

Vous pouvez faire :
Point pt3 = new Point(pt1.X - pt2.X, pt1.Y - pt2.Y);

--
Zazar
Avatar
Phildes
> Connaissez-vous un moyen moins couteux
de faire une soustraction de coordonnées...


Voir doc : utiliser la soustraction de coordonnée
------------ extrait de la doc ----------
".NET Framework Class Library
Point Subtraction Operator
Translates a Point by the negative of a given Size.
[C#]
public static Point operator -(
Point pt,
Size sz
);"
---------------------------------------
ex :
Point pos = new Point(100,100);
pos = pos - new Size(20,80);

(je n'ai pas testé : pos -= new Size(20,80);)

Dites-moi si ça fonctionne.

Philippe Destrumel



Bismark Prods <xanaia#nospam#@urbanet.ch> a écrit dans le message :

Bonjour,

Connaissez-vous un moyen moins couteux de faire une soustraction de
coordonnées que celle que j'ai actuellement :

Point pt1 = new Point(10,10);
Point pt2 = new Point(32,22);
Point pt3 = new Point();
pt3 = pt2 - (Size)pt1; -> sans boxer ?
MessageBox.Show("PT3 : " + pt3.ToString());

Merci

Bismark




Avatar
Phildes
Désolé, ignorez ma réponse. Je pensais que Zazar ne parlais que de
l'allocation 'Point pt3 = new Point()'

En effet "(Size)pt1" va construire un objet temporaire => perte de temps
-------- extrait doc -----------------
Point to Size Conversion
CREATES a Size with the coordinates of the specified Point.
-------------------------