Comment faire pour déterminer si un point (X,Y) est contenue à l'intérieur d'un arc de section d'un cercle (c'est à dire à Tarte)?
Imaginer un cercle. Imaginez une tarte. Imaginez que vous essayez de renvoyer un booléen qui détermine si la condition paramètres X, Y sont contenues à l'intérieur de l'un de ces morceaux de tarte.
Ce que je sais à propos de l'arc:
J'ai le CenterX, CenterY, Rayon, StartingAngle, EndingAngle, StartingPoint (point sur la circonférence), EndingPoint (point sur la circonférence).
Donné une coordonnée X,Y, j'aimerais déterminer si ces coordonnées sont compris à l'intérieur de la tarte à la diapositive.
Pourquoi C# et Java marqués? Cela ressemble à une simple question de Mathématiques.
Oups. J'avais eu à l'origine de la question spécifique à la langue, mais ensuite changé pour être plus générique. J'ai oublié de modifier les tags. Des excuses.
Oups. J'avais eu à l'origine de la question spécifique à la langue, mais ensuite changé pour être plus générique. J'ai oublié de modifier les tags. Des excuses.
OriginalL'auteur AlishahNovin | 2011-06-07
Vous devez vous connecter pour publier un commentaire.
Vérifier:
Et vous aurez votre réponse.
comment déterminer qu'un angle est compris entre deux autres angles, en utilisant les équations?
C'est un peu vieux, mais vous pouvez trouver une réponse ici: math.stackexchange.com/questions/1596513/...
OriginalL'auteur Wrikken
Convertir X,Y coordonnées polaires en utilisant ceci:
Angle = arctan(y/x);
Rayon = sqrt(x * x + y * y);
Ensuite, l'Angle doit être entre StartingAngle et EndingAngle, et le Rayon de l'entre 0 et votre Rayon.
Oui, corrigée 🙂
Vous m'avez sauvé la vie! Merci! 🙂
Au lieu de
Radius = sqrt(x * x + y * y);
Vous pouvez essayer(x*x+y*y)<=r*r
OriginalL'auteur Matias Valdenegro
Je sais que cette question est vieux, mais aucune des réponses tenez compte de l'emplacement de l'arc sur le cercle.
Cet algorithme considère que tous les angles sont compris entre 0 et 360, et les arcs sont dessinés en mathématique positive sens inverse des aiguilles d'une montre)
D'abord, vous pouvez transformer en coordonnées polaires: rayon (R) et l'angle (A). Remarque: utilisez la fonction Atan2 si disponible. wiki
R = sqrt ((X - CenterX)^2 + (Y - CenterY)^2)
A = atan2 (Y - CenterY, X - CenterX)
Maintenant, si R < Rayon le point est à l'intérieur du cercle.
Pour vérifier si l'angle est compris entre StartingAngle (S) et EndingAngle (E), vous devez envisager deux possibilités:
1) si S < E puis si S < A < E le point se trouve à l'intérieur de la tranche
2) si S > E puis il y a 2 scénarios possibles
alors le point est situé à l'intérieur de la tranche
alors le point est situé à l'intérieur de la tranche
Dans tous les autres cas, le point est situé à l'extérieur de la tranche.
OriginalL'auteur user7048690