cs_Nabel
Messages postés53Date d'inscriptionlundi 22 avril 2002StatutMembreDernière intervention19 août 2002
-
23 mai 2002 à 10:45
achamsou
Messages postés12Date d'inscriptionvendredi 19 mars 2010StatutMembreDernière intervention 4 avril 2011
-
4 avril 2011 à 16:33
Bonjour à toutes et à tous,
J'ai créé une petite applet java permettant de dessiner un camembert selon les valeurs d'une base de données.
Ce que je voudrais faire, pour la rendre plus dynamique, c'est colorier une part (en rouge par exemple) lorsque l'utilisateur passe la souris sur la part en question.
Cependant, je ne sais pas comment faire, car il faut mesurer les coordonnées de la souris par rapport à un angle.
Si quelqu'un peut m'aider, ce serait chouette :)
Aldee
Messages postés47Date d'inscriptionjeudi 18 avril 2002StatutMembreDernière intervention 3 mai 2003 23 mai 2002 à 22:45
Je ne suis pas sûre d'avoir compris exactement ce que tu voulais mais bon,
J'ai peut-etre une solution mais elle passe par les math.
Si tu as un point de reference (O soit x0,y0).
Si tu as l'angle que fait l'horizontale passant par ce point et le point de ta souris (soit A dans le sens inverse au sens horaire).
Il te faut aussi la distance (soit R) entre ces deux points (utilise Pytagore Rcarré=Differencedesxaucarré+Differencedesyaucarré.)
Par rapport a ce point de reference les coordonnées sont :
xM=cosA * R
yM=sinA * R.
Pour avoir les coordonnées dans le repère de l'écran, il te faudra additionner x0etxM, et y0etyM (quelque soit leurs signes <0 ou >0).
J'espère que je réponds à ta question.
Si tu veux que je sois plus précise ou que tu n'as rien compris à ce que je viens de raconter, n'hésites pas à me redemander, j'adore les maths!
cs_Nabel
Messages postés53Date d'inscriptionlundi 22 avril 2002StatutMembreDernière intervention19 août 2002 24 mai 2002 à 10:46
Merci bien pour ta réponse. Je pense que ta solution pourrait me convenir parfaitement, mais j'ai décroché à la deuxième ligne !
Disons que j'ai un camembert avec 3 parts et que l'angle de la part 1 vaut 100°, l'angle de la part 2 vaut 70°, et le dernier vaut 190°. J'aimerais que quand l'utilisateur passe la souris dans une part, elle se colorie d'une autre couleur. Pour cela, il faut que je calcule si les coordonnées de la souris sont dans une part et si oui, quelle part. Les données que j'ai sont : les angles de chaque part, les coordonnées du centre du cercle, et les coordonnées de la souris.
Si tu as l'angle que fait l'horizontale passant par ce point x0 Y0 et le point de ta souris (soit A dans le sens inverse au sens horaire) C'est cette phrase que je ne comprends pas. Je calcule l'angle entre l'horizontale et quelle autre droite ?
En fait, j'aimerai un peu pus de précision sur ta solution, je ne suis pas très forte en math, mais je me soigne !
Aldee
Messages postés47Date d'inscriptionjeudi 18 avril 2002StatutMembreDernière intervention 3 mai 2003 27 mai 2002 à 15:37
OK.
Pour l'angle je voulais savoir si l'angle que tu considérais était celui réél de ta part ou l'angle entre l'horizontale et l'extremité de ta part de camenbert?
Bref, je continue.
Les coordonnées de ta souris sont S(xs,ys).
Les coordonnées du centre O(x0,y0).
Et ton angle A.
Bon.
Tu vérifies si le click de souris a lieu dans un rayon inférieur au rayon du cercle par Pytagore.
Cette distance = à la racine carré de la somme de (xs-x0) au carré et de (ys-y0) au carré.
Ensuite, tu calcules l'angle entre l'horizontale passant par O et la droite passant par OS. Et tu vérifies que cet angle est inférieur à l'angle de ta part de camembert.
L'angle de ton click de souris, tu fais l'inverse cos (noté cos-1) de la différence des abscisses xs et x0, divisé par l'hypothénuse c'est-a-dire la relation de Pytagore que tu as calculé avant.
Je n'ai pas trop le temps là, mais j'essaie de t'envoyer un croquis pour completer l'explication.
cs_Nabel
Messages postés53Date d'inscriptionlundi 22 avril 2002StatutMembreDernière intervention19 août 2002 29 mai 2002 à 14:02
Ok, je veux bien un croquis, bien que ton explication me paraît un peu plus clair.
Je vais essayer cette soluce dès que possible.
Je te file mon e-mail : c_clair@caramail.com
Merci bcp :)
Ann@bel
Vous n’avez pas trouvé la réponse que vous recherchez ?