Inscription / Connexion Nouveau Sujet
Niveau autre
Partager :

calculer un point sur un cercle

Posté par
l69
17-05-16 à 19:50

Bonjour,
j'ai un problème est je suis très nul en math. J'ai beau chercher je ne trouve pas d'exemple à mon problème.

J'aurais besoin de calculer la position d'un point sur un cercle par rapport à une droite qui part du centre du cercle jusqu'à un point à l'extérieur du cercle.
Je connais la position du centre du cercle en X et Z et le rayon du cercle. Je connais aussi la position du point à l'extérieur du cercle en X et Z
J'ai par contre réussi à calculer la distance entre le centre du cercle et le point à l'extérieur du texte.

Est ce que c'est possible ?

Posté par
sanantonio312
re : calculer un point sur un cercle 17-05-16 à 19:55

Bonjour,

Citation :
je suis très nul en math


Il faudrait que tu fasses aussi des efforts de rédaction.
Ton texte est incompréhensible.
Ajoute une image.

Posté par
l69
re : calculer un point sur un cercle 17-05-16 à 19:57

Pardon, je pensais que c'était précis pourtant.

Voila une image:
calculer un point sur un cercle

Posté par
sanantonio312
re : calculer un point sur un cercle 17-05-16 à 20:01

Que connais-tu du cercle? Son rayon?
Est-ce que E est le milieu de OP? Ou P le symétrique de O par rapport à E?
As-tu donné tout le texte de ton exercice?

Posté par
l69
re : calculer un point sur un cercle 17-05-16 à 20:44

Je détail plus:
j'aurais besoin de calculer la position d'un point sur un cercle(Point E) par rapport à une droite qui part du centre du cercle(Point O) jusqu'à un point à l'extérieur du cercle(Point P). Le point P à l'extérieur peut être n'importe ou.

Je connais la position du centre du cercle en X et Z et le rayon du cercle. Je connais aussi la position du point à l'extérieur du cercle en X et Z.
J'ai par contre réussi à calculer la distance entre le centre du cercle et le point à l'extérieur du cercle.

Posté par
sanantonio312
re : calculer un point sur un cercle 17-05-16 à 20:46

Qu'appelles-tu "position" de E?

Posté par
l69
re : calculer un point sur un cercle 17-05-16 à 20:49

La position de E en X et Z.

Vraiment désolé, si je n'ai pas été assez précis

Posté par
sanantonio312
re : calculer un point sur un cercle 17-05-16 à 20:51

Quelles sont les positions de O et P?

Posté par
l69
re : calculer un point sur un cercle 17-05-16 à 21:01

Les coordonnées sont:

Le point O:  X:3       Z:-17
Le point P:   X:127 Z:-9

Et le rayon est de 100

Posté par
sanantonio312
re : calculer un point sur un cercle 17-05-16 à 21:11

Pourquoi n'avoir pas tout dit depuis le début?

E est sur le cercle dont tu peux déterminer l'équation.
Et sur la droite OP dont tu peux aussi déterminer l'équation.
Deux équations & 2 inconnues...

Posté par
l69
re : calculer un point sur un cercle 17-05-16 à 21:29

Je pensais pas que les coordonnées étaient important pour le calcul vu que dans un premier temps on a juste besoin de la formule.

Je sais calculer la distance entre OP, j'ai trouvé 124, c'est ensuite que je bloque.

Posté par
sanantonio312
re : calculer un point sur un cercle 17-05-16 à 21:35

Citation :
Je pensais pas que les coordonnées étaient important pour le calcul vu que dans un premier temps on a juste besoin de la formule.

Tout est important. De quelle formule parles-tu?
Citation :
Je sais calculer la distance entre OP

Désolé, ça ne sert à rien. Enfin, je crois. Et 124 st un valur appochée.

Fais ce que je t'ai proposé à 21h11...

Posté par
Tilk_11 Moderateur
re : calculer un point sur un cercle 17-05-16 à 21:54

Bonsoir,
l69 pourrais-tu, s'il te plait, mettre ton profil à jour ainsi que ton niveau d'études.....
l'aide qui t'est fournie n'en sera que plus personnalisée et efficace.

Posté par
l69
re : calculer un point sur un cercle 18-05-16 à 12:00

On peut pour ainsi dire que j'ai aucun niveau, je n'ai jamais appris ça à l'école moi. J'ai qu'un CAP.
C'est pour cela que je vous demande de l'aide, car ce n'est pas faute d'avoir chercher sans relâche depuis plusieurs jours.

Posté par
sanantonio312
re : calculer un point sur un cercle 18-05-16 à 12:46

Et pour ce que je t'ai proposé hier soir à 21h11?

Posté par
sanantonio312
re : calculer un point sur un cercle 18-05-16 à 12:59

Peux-tu nous dire d'où sort ce problème? Ce que tu cherches vraiment à résoudre StP.

Posté par
l69
re : calculer un point sur un cercle 18-05-16 à 13:38

C'est pour un jeu vidéo. J'ai un joueur qui doit rester dans un cercle et je veux que si il sort du cercle le teleporter en arrière sur le cercle comme on peut le voir sur l'image.

Posté par
sanantonio312
re : calculer un point sur un cercle 18-05-16 à 14:08

Pourquoi avoir choisi 3 et -17 pour les coordonnées du centre du cercle alors?
Avec 0 et 0, les calculs seraient plus simples.
Avec tes données, on doit:
- résoudre : 965z²+32810z+268885=0.
- Choisir la bonne solution parmi les 2
- Calculer x= (31z+533)/2

Posté par
l69
re : calculer un point sur un cercle 18-05-16 à 17:46

J'ai pas choisis les points, c'est le jeu, mais c'est vrai qu'avec 0 et 0 comme centre ça serait plus facile.

Je crois que je vais finir par abandonner et c'est pas faute de chercher, je ne comprends absolument rien d'ou tu trouve ces chiffres et c'est pas faute d'avoir chercher. En tout qu'a merci de t'obstiner à essayer de m'aider.

PS: c'est pas tout les jour ou on a besoin de faire des maths dans un jeu non ?

Posté par
sanantonio312
re : calculer un point sur un cercle 18-05-16 à 17:58

Si, souvent.
Comment j'ai trouvé ça:
L'équation du cercle est (x-3)²+(y+17)²=100²
L'équation de la droite est 2x-31z-533=0
J'exprime x en fonction de z avec la 2ème équation et je l'injecte dans l'équation du cercle.

Posté par
l69
re : calculer un point sur un cercle 18-05-16 à 18:32

La première formule je la connais,  ça me permet de savoir si je suis dans le cercle ou non, mais la seconde je ne la comprends pas, désolé.

Posté par
sanantonio312
re : calculer un point sur un cercle 18-05-16 à 20:08

La droite passe par O(3;-17) et P(127;-9)
Son équation est de la forme z=ax+b
Le coefficient directeur a=(zP-zO)/(xP-xO)=8/124=2/31
On a donc z=(2/31)x+b
La droite passe par O donc -17=(2/31)3+b
b=-17-6/31=(-527-6)/31=-533/31
L'équation devient z=(2/31)x-533/31
Ou encore 31z=2x-533
Et donc 2x-31z-533=0

Posté par
l69
re : calculer un point sur un cercle 18-05-16 à 21:30

On devrait pas avoir deux nombres ?

Posté par
sanantonio312
re : calculer un point sur un cercle 18-05-16 à 21:35

?

Posté par
l69
re : calculer un point sur un cercle 18-05-16 à 21:39

Bas on à toujours deux coordonnées:  X et Z et la non.

PS:  je regarde des vidéos youtube pour essayer de comprendre, car je comprends vraiment rien a mon problème. désolé

Posté par
sanantonio312
re : calculer un point sur un cercle 18-05-16 à 21:42

Je n'ai pas fini la résolution.
Il faut bien que tu bosses un peu.
Pour finir, fais ce que je t'ai dit à 14h08

Posté par
l69
re : calculer un point sur un cercle 19-05-16 à 11:50

Il y aune autre possibilité: je connais tout les points de mon cercle(0°<360°) et je peux donc connaitre la distance de chaque point du cercle vers le joueur et si j'arrive à savoir si le point du cercle choisit est sur la droite OP alors j'ai trouvé le point E.
C'est peut être plus simple non ? Vu qu'autrement je n'y arrive pas.

Posté par
sanantonio312
re : calculer un point sur un cercle 19-05-16 à 12:07

Je ne comprends pas ce que tu écris.
Il aurait fallu que tu expliques tout, complètement et clairement.
Je découvre qu'il y a un joueur. Est-ce un des 3 points O, P ou E?

Citation :
si j'arrive à savoir si le point du cercle choisit est sur la droite OP

De quel point s'agit-il? Qui l'a choisi? Comment?
Désolé, mais je renonce.

Posté par
mathafou Moderateur
re : calculer un point sur un cercle 19-05-16 à 12:21

Bonjour,

Citation :
je connais tout les points de mon cercle

c'est faux. tu n'en connais qu'une infime partie = ceux que tu as calculé.

sanantonio312 traite ton problème comme un exercice à faire (par toi) et donc te demande de faire des calculs en te disant lesquels

libre à toi de ne pas suivre ses conseils, mais c'est la bonne méthode "mathématique" ces conseils.
il te donnent par le calcul exact les coordonnées du point E

une autre méthode qui s'avèrera certainement plus pratique dans la programmation effective du jeu :

dans les langages de programmation il existe souvent une fonction atan2(x, y) qui donne l'angle (orienté dans le bon sens) sous lequel est "vu" le point P(x, y) à partir de O (0, 0)
sinon, avec juste un arctan ordinaire, l'angle est défini à 180° près
et il faut alors "lever le doute" en considérant le signe du sinus par exemple.
doute que la méthode algébrique de sanantonio312 continue à laisser dans l'ombre sous forme de "choisir le bon des deux points d'intersection de la droite (OP) avec le cercle"
choix qui par un être humain serait "évident" sur les valeurs numériques de coordonnées, mais qu'il faudra programmer effectivement par des test "si ..."

bref, avec usage de cette fonction atan2, on connait alors directement les coordonnées de E par la trigo :
XE = XO + R*cos(atan2(XP-XO, YP-YO))
et YE du même tabac avec sinus
(ou Z comme tu appelles tes coordonnées)

mathématiquement cela revient à faire tout ça en coordonnées polaires au lieu de cartésiennes, et de repasser en cartésien ensuite, avec changement de l'origine pour l'amener en O

en effet en polaire l'équation d'un cercle de centre O (0,0) est "triviale", c'est = R !!
et le point du cercle dans la direction de P (d, ) est tout simplement (R, ) sans aucun "calcul"
les "calculs" sont donc le passage en polaire (par le atan2) et le retour en cartésiennes sans fioritures autour.
une simple soustraction, suivie de l'addition à la fin, des coordonnées de O ramène temporairement l'origine en O.

Posté par
l69
re : calculer un point sur un cercle 19-05-16 à 13:11

C'était ce qu'il me fallait!!!!!!!!!!!!! MERCI

Voila donc les deux calculs et normalement, j'ai bon d'après mes tests:

Citation :
double calcX = oX + (rayon*Math.sin(Math.atan2(pX-oX, pZ-oZ)));
double calcZ = oZ + (rayon*Math.sin(Math.atan2(pZ-oZ, pX-oX)));

Posté par
mathafou Moderateur
re : calculer un point sur un cercle 19-05-16 à 14:14

tss tsss

en x c'est cosinus et en z (y) c'est sinus

et pour replacer le joueur en E directement tu mets ces valeurs dans pX et pZ "manu militari"

calculer une seule fois double t = Math.atan2(pX-oX, pZ-oZ);
permet de tout faire d'un coup en :
pX = oX + (rayon*Math.cos(t));
pZ = oZ + (rayon*Math.sin(t)):

(sans passer par la variable auxiliaire t, le calcul serait faux par "écrasement" de valeurs de pX)

Posté par
mathafou Moderateur
re : calculer un point sur un cercle 19-05-16 à 15:37

oups, après vérification de la syntaxe de atan2 c'est atant2(y, x) (ordonnée d'abord, abscisse ensuite)

donc :

double t = Math.atan2(pZ-oZ, pX-oX);
pX = oX + (rayon*Math.cos(t));
pZ = oZ + (rayon*Math.sin(t));

(ou double calcX = etc si on ne veut pas forcer P à revenir au bord tout de suite)

plutot que de calculer un autre angle et rendre le calcul incompréhensible mathématiquement, car sans rapport direct avec les opérations mathématiques effectuées (passage en polaire etc comme j'ai dit)
avec des sinus à la place du cosinus et tes calculs de deux angles différents, c'était juste, mais incompréhensible donc semblant faux.

Posté par
l69
re : calculer un point sur un cercle 19-05-16 à 18:31

D'après mes tests ça à marché à un endroit, mais bien sur ça ne marchait pas partout vu qu'il y avait une erreur.
Au début les nombres correspondaient au coordonnées ou je devais aller. Donc je n'avais pas fait attention. Par contre au cours de mes test, je sais plus pourquoi mais j'étais envoyé de l'autre coté du cercle, ça peut être pratique.

Je trouve incroyable la façon de régler le problème alors que c'était pour moi si compliqué et pratiquement impossible.

Merci mathafou et bien sur à sanantonio312  qui n'a pas perdu courage et à toujours tenté de m'aider malgré ma nullité^^.

Posté par
sanantonio312
re : calculer un point sur un cercle 19-05-16 à 19:25

Y'a pas de quoi. Moi, je ne comprenais juste pas ce que tu voulais exactement.
mathafou a compris lui...

Posté par
carpediem
re : calculer un point sur un cercle 19-05-16 à 20:24

salut

je découvre ce fil .... et il me semble qu'on peut faire (plus) simple avec des vecteurs :

je note O l'origine du repère ...

situation : un disque de centre I(a, b) et de rayon r et un joueur en P(u, v) à l'extérieur du disque de centre I et de rayon r

objectif : déplacer le joueur de P en E = intersection de la droite (IP) et du cercle C(I, r)

alors tout simplement : \vec {IE} = \dfrac r {IP} \vec {IP} <=> \vec {OE} = \vec {OI} + \dfrac r {IP} \vec {IP}

il est alors aisé de calculer chacun des termes/vecteurs de ce dernier membre ....


amélioration ou bonus : \vec {OE} = \vec {OI} + t\dfrac r {IP} \vec {IP} ou t est un réel (choisi au hasard) dans l'intervalle [0, 1] alors le joueur se retrouve au hasard sur le segment [IE]


en espérant avoir aussi compris ce qui était demandé ...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !