LordOfTheShadow
Messages postés174Date d'inscriptionvendredi 22 décembre 2000StatutMembreDernière intervention 9 septembre 2010
-
28 janv. 2009 à 16:00
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 2010
-
30 janv. 2009 à 08:33
Bonjour à tous,
J'ai fait un userControl. Dans ce UserControl je dessine un cercle au dimension du UserControl. Est-ce-que quelqu'un connait une méthode simple de dire si oui ou non un clic a été effectué dans le cercle ou la region du cercle? comme pour la méthode Contains( ) de Rectangle par exemple...
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 30 janv. 2009 à 08:33
Hello,
Tu sais, pour dessiner le cercle, l'ordinateur utilise certainement un technique similaire, et un calcul de racine carrée, n'est pas si lourd que ça pour un processeur.
Je viens de faire un petit test sur mon ordinateur.
Le calcul d'un milliard de racine carrées prend à peu près 25 secondes, donc pour 30 racines carrées, je ne pense pas qu'il faille t'inquiéter.
D'autant plus, que si tu veux optimiser pour ne plus avoir de racines, c'est facile :
(cx-px)^2+(cy-py)^2 <= r^2
Amicalement, SharpMao
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
LordOfTheShadow
Messages postés174Date d'inscriptionvendredi 22 décembre 2000StatutMembreDernière intervention 9 septembre 20105 29 janv. 2009 à 18:15
Ce que je veux dire c'est que faire une racine carré c'est lourd pour le processeur (en tout cas dans mon cas car je reproduit plus de 30 fois la même action). C'est pas comme comme la méthode contains() qu'on peut faire sur un rectangle.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 29 janv. 2009 à 23:39
Mais ça n'a rien avoir!
La méthode Contains évalue de bête ligne droite, en regardant si t'es au-dessus/au-dessous, à gauche/droite...
Avec un cercle c'est pas possible!
Même si y'avait une méthode dans le framework genre IsInCircle, tu n'irais pas plus vite....