Déterminer si le point est dans le cercle

Bonjour
Avant de commencer, j'ai souvenir d'avoir déjà eu des problèmes similaire au Lycée donc si je me suis trompé de catégorie j'en suis désolé ^^'

Je programme actuellement une application d'apprentissage pour croupier contenant plusieurs exercices.
Dans l'un de ces exercices j'essaie de créer un genre de puzzle pour faire apprendre le "racetrack" car les croupier doivent apprendre par cœur les nombres de la roulette dans l'ordre.
(Exemple: "racetrack casino.jpg").

Dans l'idée, je vais prendre un racetrack sans valeur à l'intérieur puis demander à l'utilisateur de placer un nombre sur la case correspondante.
(Exemple: "shema racetrack repere.jpg")
Mon problème est de déterminer quel case l'utilisateur a touché sur l'écran du téléphone.
Pour toute les cases rectangulaire, il n'y a pas de problème je compare les coordonnées d'où l'écran à été touché par l'utilisateur avec Ymin-Ymax Xmin-Xmax pour chaque case.

En revanche pour toute les cases arrondie, je ne vois pas du tout comment faire.

Annexe : "shema racetrack annexe.jpg"

Toutes les coordonnées des points rouges sont connues.
L=h
rayon C1 = rayon C2
rayon C1 = L + L/2123972
123974
123976

Réponses

  • Bonjour,

    Le point $(x,y)$ est à l'intérieur du cercle de centre $(a,b)$ et de rayon $r$ si et seulement si $(x-a)^2+(y-b)^2 < r^2$.
  • Merci, ça m'aide énormément! :)
    Je pense qu'on à résolue la moitié du problème.
    Auriez-vous une formule pour déterminer dans quel part du cercle est le point?
    Je pensais utiliser les angles de chaque part du cercle.
    Exemple:
    Case 6 compris entre 0 et 45 degré
    Case 7 compris entre 45 et 90 degré
    Case 1 compris entre 90 et 150 degré
    etc...123986
  • Bonsoir

    La formule qui détermine le cosinus de l'angle compris entre les points $\widehat{AOB}$ est :

    $(\overrightarrow{OA} × \overrightarrow{OB}) /( OA × OB) = cos(\widehat{AOB})$

    Par suite on détermine la valeur de l'angle avec $arccos$.

    Avec ça et l'autre formule donnée précédemment tu devrais aisément résoudre ton problème.

    Note : la formule donnera toujours l'angle compris entre $0°$ et $180°$.
  • Bonjour, peut être c'est mieux de définir les zones par un système d'inéquation.
    Par exemple dans la dernière figure, un point $(x,y)$ est dans la zone (7) et avec le repère rouge dans tes premières figures;
    [Le petit cercle de centre $(a,b)$ et de rayon $r$ et le grand cercle de centre $(c,d)$ et de rayon $R$];
    s'il verifie le système $\begin{cases}0\le y\le x\\0\le x\le 1.5L \\ \text{(exemple de la figure c'est l'abscisse de la verticale à droite)}\\(x-a)^2+(y-b)^2\ge r^2\\(x-c)^2+(y-d)^2\le R^2\end{cases}$.
  • Une autre possibilité est de transformer les coordonnées x,y en coordonnées polaires (rho, teta) centrées sur C1 puis C2 . Les tests à faire ensuite sont alors assez élémentaires .
    Cordialement
  • Merci!
    J'ai cherché de mon coté comment appliquer cette formule mais ça ne marche pas
    Pourriez-vous développer, comment se calcule cette formule? s'il vous plait :)
  • Bonjour.

    Attention que dans votre schéma avec les 7 partitions du disque, la moitié droite est découpée en trois morceaux de même secteur angulaire alors que la partie gauche est coupée en 4 morceaux de même secteur angulaire (forcément différent de ceux de la partie droite).

    De plus, vous démarrez vos mesures d'angle principal du côté opposé à ce qui se fait d'habitude, et en allant en sens opposé de plus.

    Et cela correspond en fait quasiment aux dernières valeurs (6 et 7).

    Bref, je vous conseillerais de reprendre le problème en partant du point supérieur du disque comme origine et de transformer les fonctions trigonométriques pour modéliser le sens de parcours naturel (de 1 à 7, donc), ce qui supprimera de facto deux difficultés inhérentes à votre modélisation.

    À bientôt.

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • Bonjour

    Si c'est de la formule que j'ai donné dont tu parles, il s'agit pour $\overrightarrow{OA} × \overrightarrow{OB}$ du produit scalaire du vecteur $\overrightarrow{OA}$ et $\overrightarrow{OB}$. Et pour $OA × OB$ simplement du produit des longueurs $OA$ et $OB$.

    En coordonnées cartésienne cela donne pour le produit scalaire :

    $(xA-xO) (xB-xO) + (yA-yO) (yB-yO)$

    Et pour le produit des deux longueurs :

    $\sqrt{(xA-xO)^2+(yA-yO)^2} \sqrt{(xB-xO)^2+(yB-yO)^2}$

    Ne pas oublier la division et la fonction arc cos. Attention aux parenthèses.
  • Exemple sous GeoGebra avec les coordonnées polaires
  • Super! Merci à tous!
    Je vais pouvoir finir mon application :)
    Merci encore!
  • Mettons que je l'ai coordonnées de A et de O ainsi que l'angle AOB
    Auriez vous une formule pour calculer les coordonnées de B?
  • Bonjour.

    Il faut un renseignement supplémentaire au moins : A, O et l'angle AOB donnent une (*) demi droite de points B.

    Cordialement.

    (*) pour un angle de demi-droites, dit aussi "angle orienté".
  • Bonjour

    J'ai besoin pour mon application d'une formule pour calculer dans un repère orthonormé les coordonnées d'un point à l'aide de 2 points et d'un angle.
    Mettons que A = (a,b), O = (c,d), l'angle AOB = xº, longueur AO = longueur BO
    Quels sont les coordonnées de B ?
  • J'ai refait un sujet.

    http://www.les-mathematiques.net/phorum/read.php?8,2264908

    c'est peut être plus clair avec cette énoncé.
  • On précise qu’on est dans un repère orthonormé (sinon difficile de deviner...).
    Il y aura deux solutions.

    Mon approche est naïve. Je viens plus tard proposer mon truc.
    D’ici là, peut-être qu’une personne charitable aura plié ce petit exercice d’une manière élégante.

    Cordialement
  • j'avais oublié de le mettre ^^
    J'ai modifié.
  • Bonjour,
    coordonnées !
    Bien cordialement.
    kolotoko
  • Bonjour,

    Si l'angle AOB est un angle orienté, mesuré dans un repère orthonormé direct, il y a une unique solution.
    Le vecteur $\overrightarrow{OB}$ s'obtient par rotation à partir de $\overrightarrow{OA}$. Il suffit d'écrire la matrice de rotation.
  • Bonjour Sevlacnog,
    Il serait plus judicieux de prendre le point O pour origine et de trouver les formules de la rotation qui transforme A en B, ce qui doit être possible, entre autres, par voie trigonométrique ...
    Bien cordialement
    JLB
  • Merci mais honnêtement tout ça est un peu flou pour moi...
    Auriez-vous une documentation ou bien un exemple à me donner pour que j'y voit plus claire?
  • Bonjour,
    Dans un repère orthonormé d'origine O, connaissant A(xA, yA) et l'angle AOB = a, les coordonnées de B (xB, yB) sont les suivantes :
    xB = yA.sin(a) + xA.cos(a) et yB = yA.cos(a) - xA.sin(a)
    (formules établies à partir des formules trigonométriques donnant le sinus et le cosinus de la différence de deux angles, ici xOA et xOB, compte tenu de l'égalité OA = OB)
    Quelqu'un peut-il confirmer ? Merci !
    Bien cordialement
    JLB
    PS : Suite au message de GaBuZoMeu, je précise que ces formules sont valables, si je ne me trompe, dans tous les cas, mais à condition de tenir compte du sens de l'angle AOB, donc de son signe : je prépare une figure, pour plus de clarté.
  • Nan, ça c'est pour la rotation d'angle $-a$. La matrice de la rotation d'angle $a$ est $\begin{pmatrix} \cos(a)&-\sin(a)\\\sin(a)&\cos(a)\end{pmatrix}$, ce qui fait $x_B=x_O+\cos(a)(x_A-x_O)-\sin(a)(y_A-y_O)$ et $y_B=y_O+\sin(a)(x_A-x_O)+\cos(a)(y_A-y_O)$.

    Edit : correction de la coquille signalée par Jelobreuil.
  • Merci, GaBuZoMeu, d'avoir corrigé mes formules (j'ai probablement fait une erreur de signe quelque part !), mais tu ne t'es pas relu : dans l'expression de yB, ce sont xA et yA qui doivent intervenir, et non pas xB et yB ...
    Voici, pour Sevlacnog, les figures promises.
    Bien cordialement
    JLB124116
  • Merci, j'y vois plus clair maintenant ! :-)
Connectez-vous ou Inscrivez-vous pour répondre.