J'ai deux points de cercle et le centre de ce cercle. Je veux faire un arc entre ces points. La méthode drawArc
est simple et ne correspond pas à mon objectif. Quelqu'un aide-t-il?Tracer l'arc avec 2 points et le centre du cercle
Répondre
Graphics.drawArc
attend les paramètres suivants:
- x
- y
- largeur
- hauteur
- startAngle
- arcAngle
Compte tenu de vos points de début et de fin d'arc, il est possible de calculer un cadre de délimitation où l'arc sera dessiné. Cela vous donne suffisamment d'informations pour fournir des paramètres: x, y, largeur et hauteur.
Vous n'avez pas spécifié l'angle désiré, donc je suppose que vous pouvez en choisir un arbitrairement.
Vous pouvez utiliser Canvas.drawArc, mais vous devez calculer les arguments dont il a besoin:
Disons que le centre du cercle est (x0, y0) et que l'arc contient vos deux points (x1, y1) et (x2, y2). Alors le rayon est: r = sqrt ((xl-xo) (xl-xo) + (y1-yO) (y1-y0)). Donc:
int r = (int)Math.sqrt((x1-x0)*(x1-x0) + (y1-y0)*(y1-y0));
int x = x0-r;
int y = y0-r;
int width = 2*r;
int height = 2*r;
int startAngle = (int) (180/Math.PI*atan2(y1-y0, x1-x0));
int endAngle = (int) (180/Math.PI*atan2(y2-y0, x2-x0));
canvas.drawArc(x, y, width, height, startAngle, endAngle);
Bonne chance!
FYI: Ce code fonctionnerait un peu mieux si vous utilisiez des variables 'float' au lieu de' int'. PI = 3.14, Racines carrées, etc. Vous pourriez créer beaucoup de zéros si vous vous en tenez aux types 'int'. – jp2code
en théorie oui. cependant, drawArc() a des paramètres int. – botismarius
Cela fonctionne parfaitement en C# pour moi..Merci! – Abhishek
Est-ce que ce sont les devoirs? Si oui, merci de le marquer comme tel. – javamonkey79
Je sais qu'il existe des fonctions meny pour dessiner Arc, mais je ne peux pas finner – CarolusPl