Bonjour à tous. Après 20 ans de non utilisation, ma géométrie est pour le moins un peu rouillée... Qui eut cru qu'un beau jour j'en aurais tellement besoin
Pour une réalisation très pratique je cherche à résoudre ce problème mathématique.
J'ai modélisé la chose dans le dessin ci-dessous...
Si quelqu'un pouvait m'aider, ça serait très sympa
Ca fait des jours que je sèche alors que je suis persuadé qu'il y a "quelques" années j'aurais fait cela "fingers in the nose"...
Quelqu'un pour aider un vieux jeune?
Merci d'avance!
Sébastien
======================================================================
Soit deux droites verticales dont on connait les coordonnées X (en rouge)
Ces deux droites sont coupées par par des tangeantes d'un cercle dont on ne connait ni le centre ni le diamètre (mais je l'ai dessiné pour la compréhension)
On connait les coordonnées des points d'intersection A,B,C,D (et E,F si nécessaire, mais je ne pense pas)
Le but du jeu est de trouver la formule du Y des coordonnées des points d'intersection (le reste on l'a déjà) de la tangeante horizontale avec les droites verticales...

Bonjour,
Il faudrait clarifier quelques trucs:
Les deux droites ont comme équation x=x1 et x==x2?
Tu dis que tu connais les coordonnées de A, B, C et E. Puis, qu'il faut calculer leurs ordonnées???
oui, j'ai peut-être manqué de clarté
les deux droites ont bien comme équation x=x1 et x==x2 et x1 et x2 sont connus.
Ce qu'il faut trouver, ce sont les point d'intersection avec la tangente bleue... dont on ne connait pas le Y (les X sont x1 et x2 bien entendu)
Merci de m'aider dans ce casse tête 
Si tu ne fais que prendre AB et CD, c'est indéterminé comme problème car il y a une infinité de cercles tangents à AB et CD donc pleins de tangentes horizontales bleues. Il faut donc utiliser aussi EF.
Ca commence donc par "construire un cercle tangent à 3 droites données", tu trouveras ça là par exemple :
Cela dit, trouver l'équation du cercle dans le cas général risque de générer des calculs très compliqués. Tu feras mieux de le faire géométriquement, avec geogebra ou geoplan.
Je comprends... dommage car en fait je dois inclure cela dans un programme pour une fraise numérique... donc je ne peux pas lui demander de sortir le compas et la règle à chaque fois
tout ce que la pauvre bête peut me donner, ce sont des coordonnées sur les deux droites verticales...
Il faudra alors que je travaille par itération: je vérifie que Y2 est plus petit que le Y1, et tant que c'est le cas, je fais un peu tourner le cercle...
Ca va marcher, mais c'est vraiment pas "propre"... très empirique
Une autre idée?
Pas besoin de sortir le compas ...
Comme cela a été dit, il faut au 3 couples de points (A,B) , (C,D) , (E,F) connus
Le centre du cercle cherché est sur la bissectrice de l'angle formé par les droites (AB) et (CD)
Le centre du cercle cherché est aussi sur la bissectrice de l'angle formé par (EF) et (CD) (par exemple)
Les équations de ces bissectrices peuvent être déterminées.
Et en résolvant le système des 2 équations des bissectrices, on aura les coordonnées du centre du cercle.
On peut calculer, ensuite, la distance entre le centre du cercle et une des tangentes connue (AB) par exemple et cette distance sera le rayon du cercle.
L'ordonnée de la tangente horizontale est alors la différence entre l'ordonnée du centre du cercle et le rayon.
Ensuite les coordonnées des points chechés sont immédiates.
-----
Il faut quand même faire attention à quelques endroit des calculs.
Par exemple : l'angle formé par 2 droites à 2 bissectrices ...
Il faut choisir "la bonne" en fonction de l'application.
On remarquera aussi qu'il y a 2 tangentes horizontales (distance de 2R) ... et que donc il faut choisir la bonne.
-----
Je n'ai pas le courage de mener les calculs (surtout de manière littérale), peut-être y aura-t-il un courageux pour le faire.
Il y a probablement d'autres méthodes.
Sauf distraction. 
Bonjour et merci pour ces infos,
c'est effectivement la façon dont j'ai réalisé le dessin (mais les softs de CAD évitent les formules complexes
)
Reste effectivement à écrire les formules et là... WAW...
On dit que chaque jour on perd une quantité importante de neurone après 18 ans. J'ai bien peur que mes maths en aient grandement souffert 
Voir ici
équation cartésienne pour trouver l'équation d'une bissectrice d'un angle formé par 2 droites.
Attention qu'il y a 2 bissectrices ... qui sont à 90° l'une de l'autre.
Il faut choisir celle qui convient à l'application.

Passionnant ton sujet !
Avec un logiciel de calcul formel (Xcas) voici le script que j'ai tenté en suivant vos idées, les instructions étant en français je n'ai pas besoin d'expliquer !
u:=20;v:=25; // voir ton dessin, on peut laisser u et v formelles
A:=point(u,a):;B:=point(v,b):;C:=point(u,c):;D:=point(v,d):;E:=point(u,ee):;F:=point(v,f):; // ee car e est réservé c'est exp(1)
M:=inter_unique(droite(A,B),droite(C,D)):;N:=inter_unique(droite(A,B),droite(E,F)):;
b1:=bissectrice(M,A,C):;p1:=perpendiculaire(M,b1):;
b2:=bissectrice(N,A,E):;p2:=perpendiculaire(N,b2):;
O:=inter_unique(p1,p2):; // centre du cercle
absc:=abscisse(O) // abscisse du centre
write("abscisse",absc) // écriture de l'abscisse dans un fichier texte
Pour te dissuader de faire les calculs à la main voici la formule donnant l'abscisse, si tu veux l'ordonnée c'est possible ! Si quelqu'un veut la traduire en latex
absc:=(25*a-20*b-25*c+20*d)/(a-b-c+d)+((20+((20-(25*a-20*b-25*ee+20*f)/(a-b-ee+f))*sqrt(((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)*((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)+(1/(a-b-ee+f)*(f*a+ee*(-b))-a)*(1/(a-b-ee+f)*(f*a+ee*(-b))-a)))/(sqrt(((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)*((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)+(1/(a-b-ee+f)*(f*a+ee*(-b))-ee)*(1/(a-b-ee+f)*(f*a+ee*(-b))-ee)))-(25*a-20*b-25*ee+20*f)/(a-b-ee+f)+1/(a-b-ee+f)*(f*a+ee*(-b))-1/(a-b-ee+f)*(f*a+ee*(-b)))*((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-(25*a-20*b-25*c+20*d)/(a-b-c+d))-(-a-1/sqrt(((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)*((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)+(1/(a-b-ee+f)*(f*a+ee*(-b))-ee)*(1/(a-b-ee+f)*(f*a+ee*(-b))-ee))*sqrt(((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)*((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)+(1/(a-b-ee+f)*(f*a+ee*(-b))-a)*(1/(a-b-ee+f)*(f*a+ee*(-b))-a))*(ee-1/(a-b-ee+f)*(f*a+ee*(-b)))+1/(a-b-ee+f)*(f*a+ee*(-b))+(25*a-20*b-25*ee+20*f)/(a-b-ee+f)-(25*a-20*b-25*ee+20*f)/(a-b-ee+f))*(1/(a-b-ee+f)*(f*a+ee*(-b))-1/(a-b-c+d)*(d*a+c*(-b))))/((20+((20-(25*a-20*b-25*ee+20*f)/(a-b-ee+f))*sqrt(((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)*((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)+(1/(a-b-ee+f)*(f*a+ee*(-b))-a)*(1/(a-b-ee+f)*(f*a+ee*(-b))-a)))/(sqrt(((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)*((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)+(1/(a-b-ee+f)*(f*a+ee*(-b))-ee)*(1/(a-b-ee+f)*(f*a+ee*(-b))-ee)))-(25*a-20*b-25*ee+20*f)/(a-b-ee+f)+1/(a-b-ee+f)*(f*a+ee*(-b))-1/(a-b-ee+f)*(f*a+ee*(-b)))*(-a-1/sqrt(((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)*((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)+(1/(a-b-c+d)*(d*a+c*(-b))-c)*(1/(a-b-c+d)*(d*a+c*(-b))-c))*sqrt(((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)*((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)+(1/(a-b-c+d)*(d*a+c*(-b))-a)*(1/(a-b-c+d)*(d*a+c*(-b))-a))*(c-1/(a-b-c+d)*(d*a+c*(-b)))+1/(a-b-c+d)*(d*a+c*(-b))+(25*a-20*b-25*c+20*d)/(a-b-c+d)-(25*a-20*b-25*c+20*d)/(a-b-c+d))-(-a-1/sqrt(((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)*((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)+(1/(a-b-ee+f)*(f*a+ee*(-b))-ee)*(1/(a-b-ee+f)*(f*a+ee*(-b))-ee))*sqrt(((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)*((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-20)+(1/(a-b-ee+f)*(f*a+ee*(-b))-a)*(1/(a-b-ee+f)*(f*a+ee*(-b))-a))*(ee-1/(a-b-ee+f)*(f*a+ee*(-b)))+1/(a-b-ee+f)*(f*a+ee*(-b))+(25*a-20*b-25*ee+20*f)/(a-b-ee+f)-(25*a-20*b-25*ee+20*f)/(a-b-ee+f))*(20+((20-(25*a-20*b-25*c+20*d)/(a-b-c+d))*sqrt(((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)*((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)+(1/(a-b-c+d)*(d*a+c*(-b))-a)*(1/(a-b-c+d)*(d*a+c*(-b))-a)))/(sqrt(((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)*((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)+(1/(a-b-c+d)*(d*a+c*(-b))-c)*(1/(a-b-c+d)*(d*a+c*(-b))-c)))-(25*a-20*b-25*c+20*d)/(a-b-c+d)+1/(a-b-c+d)*(d*a+c*(-b))-1/(a-b-c+d)*(d*a+c*(-b))))*(-a-1/sqrt(((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)*((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)+(1/(a-b-c+d)*(d*a+c*(-b))-c)*(1/(a-b-c+d)*(d*a+c*(-b))-c))*sqrt(((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)*((25*a-20*b-25*c+20*d)/(a-b-c+d)-20)+(1/(a-b-c+d)*(d*a+c*(-b))-a)*(1/(a-b-c+d)*(d*a+c*(-b))-a))*(c-1/(a-b-c+d)*(d*a+c*(-b)))+1/(a-b-c+d)*(d*a+c*(-b))+(25*a-20*b-25*c+20*d)/(a-b-c+d)-(25*a-20*b-25*c+20*d)/(a-b-c+d));
J'ai fait ça très vite. Donc il faudrait:
1/ vérifier la pertinence des instructions
2/ et surtout si tu pouvais me donner un exemple numérique (coordonnées des points) ainsi que le centre approximatif du cercle qu'on obtient je pourrais tester le script
Au stade actuel il y a 1 chance sur 2 que je me sois trompé. Vous allez me le dire !
J'ai pris des valeurs proches de celle du dessin pour voir:
u:=20;v:=25;a:=14.5;b:=18;c:=9.5;d:=10.5;ee:=4;f:=3;
pour les coordonnées du centre j'obtiens: [6.25,16.2701221065]
ce qui n'est pas totalement absurde.
En effet puisque c'est totalement inutile !
Totalement ? non car cela signifie que la commande latex de Xcas est probablement exempte de bugs.
Bonsoir,
étant donné 3 droites non concourantes il y a 4 cercles tangents simultanément à ces 3 droites.
On a donc, a priori, 4 solutions pour l'ordonnée de L.
Avec Xcas, on peut faire quelque chose du genre
G:=inter_unique(droite(A,B),droite(C,D));
H:=inter_unique(droite(C,D),droite(E,F));
J:=inter_unique(droite(E,F),droite(A,B));
CERCLE:=exinscrit(J,H,G)
Ce qui donne, les points A,B,C,D,E et F ayant été définis, le cercle tracé sur la figure donnée.
L'ordonnée de L est alors ordonnee(centre(CERCLE))-rayon(CERCLE)
Merci du tuyau ! C'est la première fois que j'utilise la commande exinscrit.
Effectivement pour avoir le bon cercle il faut prendre J (pour moi c'est N) comme premier argument de exinscrit. C'est rassurant j'ai le même cercle que toi avec mon exemple.
En revanche Xcas mouline sur rayon(CERCLE). Voici le script que je vais transmettre au développeur de Xcas:
u:=20;v:=25;
A:=point(u,a):;B:=point(v,b):;C:=point(u,c):;D:=point(v,d):;E:=point(u,ee):;F:=point(v,f):;
M:=inter_unique(droite(A,B),droite(C,D)):;
N:=inter_unique(droite(A,B),droite(E,F)):;
P:=inter_unique(droite(C,D),droite(E,F)):;
Cercle:=exinscrit(N,M,P):; // en 1.98s
Centre:=centre(Cercle):; // en 2.86s
abscisse(Centre) // formule aussi complexe qu'avec ma méthode
ordonnee(Centre)
rayon(Cercle) // plantage
Salut à tous,
je n'ai pas su me connecter hier pour suivre le fil de ma question.
Me revoici donc ce matin, et OH SURPRISE un début de solution (voir LA solution)?
Waw, vous m'épatez!
Je vais refaire mon graph et vous donner des coordonnés très précises... ca devrait aider !
M E R C I !!!
Seb
PS: je pensais que mon "petit problème" était nettement plus simple! comme quoi on peut être surpris parfois!
Bernard Parisse le développeur de giac/Xcas répond en général très vite.
Voici l'amélioration qu'il propose:
u:=20; v:=25;
A:=point(u,a):;B:=point(v,b):;C:=point(u,c):;D:=point(v,d):;E:=point(u,ee):;F:=point(v,f):;
M:=inter_unique(droite(A,B),droite(C,D)):;
N:=inter_unique(droite(A,B),droite(E,F)):;
P:=inter_unique(droite(C,D),droite(E,F)):;
diam:=exinscrit(N,P,M)[1,1];
R:=(diam[1]-diam[0])/2; // différence entre deux affixes ayant la même partie imaginaire, attention au signe
write("rayon",R) // en sortie une formule démentielle !
Juste une remarque. Ce n'est pas parce qu'un algorithme général sort une formule complexe qu'il n'est pas possible de trouver dans ce cas particulier une écriture plus simple. Les coordonnées cartésiennes ne sont peut-être pas la meilleure approche ?
Une autre approche qui donne des formules plus simples (tout est relatif)
On utilise la surface du triangle et le barycentre des sommets. Voir ici
C'est l'algo de Xcas.
u:=20;v:=25;
A:=point(u,a):;B:=point(v,b):;C:=point(u,c):;D:=point(v,d):;E:=point(u,ee):;F:=point(v,f):;
M:=inter_unique(droite(A,B),droite(C,D)):;N:=inter_unique(droite(A,B),droite(E,F)):;
P:=inter_unique(droite(E,F),droite(C,D)):;
Centre:=affixe(barycentre([M,m],[N,-n],[P,p]));
surface:=re(M-N)*im(P-N)-im(M-N)*re(P-N);
Rayon:=surface/(m-n+p)
La formule donnant le rayon est plus simple comme on le voit:
Rayon:=(((25*a-20*b-25*c+20*d)/(a-b-c+d)-(25*a-20*b-25*ee+20*f)/(a-b-ee+f))*(1/(c-d-ee+f)*(f*c+ee*(-d))-1/(a-b-ee+f)*(f*a+ee*(-b)))-(1/(a-b-c+d)*(d*a+c*(-b))-1/(a-b-ee+f)*(f*a+ee*(-b)))*((25*c-20*d-25*ee+20*f)/(c-d-ee+f)-(25*a-20*b-25*ee+20*f)/(a-b-ee+f)))/(sqrt(((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-(25*c-20*d-25*ee+20*f)/(c-d-ee+f))^2+(1/(a-b-ee+f)*(f*a+ee*(-b))-1/(c-d-ee+f)*(f*c+ee*(-d)))^2)-sqrt(((25*a-20*b-25*c+20*d)/(a-b-c+d)-(25*c-20*d-25*ee+20*f)/(c-d-ee+f))^2+(1/(a-b-c+d)*(d*a+c*(-b))-1/(c-d-ee+f)*(f*c+ee*(-d)))^2)+sqrt(((25*a-20*b-25*ee+20*f)/(a-b-ee+f)-(25*a-20*b-25*c+20*d)/(a-b-c+d))^2+(1/(a-b-ee+f)*(f*a+ee*(-b))-1/(a-b-c+d)*(d*a+c*(-b)))^2));
Son écriture dissuade cependant de faire les calculs à la main:
Avertissement: tout ceci sans aucune garantie je n'ai testé que sur un exemple.
J'ai oublié une ligne de code.
u:=20;v:=25;
A:=point(u,a):;B:=point(v,b):;C:=point(u,c):;D:=point(v,d):;E:=point(u,ee):;F:=point(v,f):;
M:=inter_unique(droite(A,B),droite(C,D)):;N:=inter_unique(droite(A,B),droite(E,F)):;
P:=inter_unique(droite(E,F),droite(C,D)):;
m:=longueur(N,P);n:=longueur(M,P);p:=longueur(N,M);
Centre:=affixe(barycentre([M,m],[N,-n],[P,p]));
surface:=re(M-N)*im(P-N)-im(M-N)*re(P-N);
Rayon:=surface/(m-n+p);
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :