Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Tangente à un cercle passant par un point extérieur au cercle

1,281 views
Skip to first unread message

François Guillet

unread,
May 21, 2017, 4:57:47 AM5/21/17
to
J'ai un cercle de centre (a,b) et de rayon r.
J'ai une droite D d'équation y=p*x+k passant par un point (c,d) (donc
k=d-p*c) :
http://exvacuo.free.fr/temp/tangcercle.jpg

Je cherche la pente p de la droite pour qu'elle soit tangente au
cercle, et le point de tangeance (x,y). Il y a 2 solutions.

En appliquant Pythagore,
(1) r² + (x-c)²+(y-d)² = (x-a)²+(y-b)²

(2) y = p*x+k (point de tangence sur la droite D)

(3) y = -1/p * x + k' (point de tangence sur la droite perpendiculaire
à D passant par le centre du cercle, k'=b + 1/p * a )

3 équations, 3 inconnues, pb résolu sauf que je me retrouve bloqué avec
une équation du 3ème degré.

Comment s'en sort-on ?

Olivier Miakinen

unread,
May 21, 2017, 1:11:45 PM5/21/17
to
Bonjour,

Le 21/05/2017 10:57, François Guillet a écrit :
> J'ai un cercle de centre (a,b) et de rayon r.
> J'ai une droite D d'équation y=p*x+k passant par un point (c,d) (donc
> k=d-p*c) :
> [...]
>
> 3 équations, 3 inconnues, pb résolu sauf que je me retrouve bloqué avec
> une équation du 3ème degré.

Ça m'étonne que tu arrives à une équation du 3e degré (mais je n'ai pas
suivi tes calculs, du coup je pourrais me tromper).

Voici comment je procèderais.

Soit A le point (a,b), centre du cercle de rayon r.
Soit C le point (c,d).
Soit M l'un des deux points de tangence (et M' l'autre).

Le triangle AMC est rectangle en M, donc M fait partie du cercle de
diamètre AC. Ce cercle est facile à définir : centre ((a+c)/2,(b+d)/2),
rayon (1/2).racine((a-c)²+(b-d)²).

Pour trouver les points M et M' il te suffit de faire l'intersection
de ces deux cercles, et je ne pense pas que ça donne une équation
d'un degré supérieur à 2.

--
Olivier Miakinen

Julien Arlandis

unread,
May 21, 2017, 1:18:24 PM5/21/17
to
Si je comprends bien tu cherches à déterminer la droite tangente à un
cercle passant par un point (c,d) extérieur au cercle.
Dans ce cas tu n'as besoin que de deux équations, si tu connais le point
tangent (x,y) de ta droite avec le cercle de rayon R, la pente est
automatiquement connue et vaut p = (d-y)/(c-x).
Appelons A le point tangent, O le centre du cercle et B le point (c,d).
Pour déterminer X tu as besoin de mettre en équation le fait que :
(1) la droite OX est perpendiculaire à OB,
(2) X appartient bien au cercle

Pour simplifier les équations, on va translater les origines du repère
sur le centre du cercle, de sorte que le point O ait pour coordonnées
(0,0).
Pour la première équation tu peux utiliser le fait que le produit
scalaire entre OX et XB est nul ce qui se traduit par
(1) x(c-x) + y(d-y) = O
Et pour la deuxième équation tu as
(2) x² + y² = R²

Qui se simplifie en :
(1) xc + yd = R²
(2) x² + y² = R²

Olivier Miakinen

unread,
May 21, 2017, 1:19:30 PM5/21/17
to
Le 21/05/2017 19:11, je répondais à François Guillet :
>
> Pour trouver les points M et M' il te suffit de faire l'intersection
> de ces deux cercles, et je ne pense pas que ça donne une équation
> d'un degré supérieur à 2.

http://nains-games.over-blog.com/2014/12/intersection-de-deux-cercles.html

ou

http://math.15873.pagesperso-orange.fr/IntCercl.html

--
Olivier Miakinen

François Guillet

unread,
May 21, 2017, 1:42:33 PM5/21/17
to
Julien Arlandis a exprimé avec précision :
> Le 21/05/2017 à 10:57, François Guillet a écrit :
>> J'ai un cercle de centre (a,b) et de rayon r.
>> J'ai une droite D d'équation y=p*x+k passant par un point (c,d) (donc
>> k=d-p*c) :
>> http://exvacuo.free.fr/temp/tangcercle.jpg
>>
>> Je cherche la pente p de la droite pour qu'elle soit tangente au cercle, et
>> le point de tangeance (x,y). Il y a 2 solutions.
>>
>> En appliquant Pythagore,
>> (1) r² + (x-c)²+(y-d)² = (x-a)²+(y-b)²
>>
>> (2) y = p*x+k (point de tangence sur la droite D)
>>
>> (3) y = -1/p * x + k' (point de tangence sur la droite perpendiculaire à D
>> passant par le centre du cercle, k'=b + 1/p * a )
>>
>> 3 équations, 3 inconnues, pb résolu sauf que je me retrouve bloqué avec une
>> équation du 3ème degré.
>>
>> Comment s'en sort-on ?
>
> Si je comprends bien tu cherches à déterminer la droite tangente à un cercle
> passant par un point (c,d) extérieur au cercle.
> Dans ce cas tu n'as besoin que de deux équations, si tu connais le point
> tangent (x,y) de ta droite avec le cercle de rayon R, la pente est
> automatiquement connue et vaut p = (d-y)/(c-x).

"Je cherche la pente p de la droite pour qu'elle soit tangente au
cercle, et le point de tangeance (x,y)."
donc non, je ne connais pas le point de tangence, c'est ce qu'on
cherche (lui ou la pente de la droite).

Julien Arlandis

unread,
May 21, 2017, 1:51:29 PM5/21/17
to
C'est ce que j'ai mis en équation, d'abord tu trouves le point (x,y) au
moyen des deux équations et ensuite tu pourras en déduire la pente.

Olivier Miakinen

unread,
May 21, 2017, 2:11:56 PM5/21/17
to
Le 21/05/2017 19:42, François Guillet répondait à Julien :
>>
>> Si je comprends bien tu cherches à déterminer la droite tangente à un cercle
>> passant par un point (c,d) extérieur au cercle.
>> Dans ce cas tu n'as besoin que de deux équations, si tu connais le point
>> tangent (x,y) de ta droite avec le cercle de rayon R, la pente est
>> automatiquement connue et vaut p = (d-y)/(c-x).
>
> "Je cherche la pente p de la droite pour qu'elle soit tangente au
> cercle, et le point de tangeance (x,y)."
> donc non, je ne connais pas le point de tangence, c'est ce qu'on
> cherche (lui ou la pente de la droite).

Et justement, c'est une méthode pour déterminer ce point de tangence que
Julien te propose (et moi aussi). Une fois celui-ci déterminé, la pente
s'en déduit immédiatement.

--
Olivier Miakinen

Olivier Miakinen

unread,
May 21, 2017, 2:13:19 PM5/21/17
to
Le 21/05/2017 19:51, Julien Arlandis a écrit :
>>
>> "Je cherche la pente p de la droite pour qu'elle soit tangente au
>> cercle, et le point de tangeance (x,y)."
>> donc non, je ne connais pas le point de tangence, c'est ce qu'on
>> cherche (lui ou la pente de la droite).
>
> C'est ce que j'ai mis en équation, d'abord tu trouves le point (x,y) au
> moyen des deux équations et ensuite tu pourras en déduire la pente.

Oups ! Je viens seulement de voir que tu avais répondu 20 minutes
avant moi. Désolé pour la redite.

--
Olivier Miakinen

François Guillet

unread,
May 21, 2017, 2:52:12 PM5/21/17
to
Olivier Miakinen a utilisé son clavier pour écrire :
Je vais essayer ça. Ca semble astucieux du fait que le second cercle
est bien déterminé donc on obtiendra directement l'intersection et la
solution est déjà connue, tandis que ma droite de pente -1/p dépendait
de l'autre.
Cela fait partie du dernier volet de mon projet en C++ dont je ne
pensais pas que tant de maths seraient nécessaires ! :-(

François Guillet

unread,
May 21, 2017, 3:08:16 PM5/21/17
to
Julien Arlandis avait énoncé :
Ah ok, alors j'avais mal compris. Mais dans ce cas c'est ce que j'ai
essayé de faire, et même à un moment j'ai aussi pris l'origine du
cercle pour simplifier. J'ai dû faire une erreur quelque part.
Je vais donc essayer de recommencer avec ta solution d'abord, et celle
des 2 cercles en suite si j'échoue.

> ...
> Qui se simplifie en :
> (1) xc + yd = R²
> (2) x² + y² = R²

Ca me paraissais trop beau pour être vrai.
Bon je m'y remets, ça a bien l'air de ne donner que du second degré.

François Guillet

unread,
May 21, 2017, 3:09:46 PM5/21/17
to
Le 21/05/2017, Olivier Miakinen a supposé :
Oui, j'avais mal interprété son "si tu connais le point tangent (x,y)
de ta droite".
Ok maintenant, je pars sur cette méthode

Julien Arlandis

unread,
May 21, 2017, 3:31:59 PM5/21/17
to
Là tu ne peux pas échouer, une fois que tu as isolé x dans (1) il te
reste juste une équation du second degré à résoudre.

François Guillet

unread,
May 22, 2017, 6:19:47 AM5/22/17
to
Je trouve
x = ( 2*r²*c ±2*r*d* √(c² + d² - r²) ) / 2*(c²+r²)
y = √(r²-x²)

La position du point de tangence a l'air correct.
J'ai commencé l'implémentation, reste un souci avec l'arc de cercle qui
ne rejoint pas ce point...

Je ferai un petit bilan à la fin de l'autre fil "Cherche fonction"
quand tout sera _au point_ (c'est le cas de dire).

Julien Arlandis

unread,
May 22, 2017, 7:43:20 AM5/22/17
to
Je ne sais pas si le problème vient de là, mais on a effectué une
translation du système de coordonnée de vecteur (a,b). Le c et le d de
l'équation n'est pas le même que ton c et d à toi.

Julien Arlandis

unread,
May 22, 2017, 7:45:59 AM5/22/17
to
Je ne sais pas si le problème vient de là, mais on a effectué une
translation du système de coordonnée de vecteur (a,b). Le c et le d de
l'équation n'est pas le même que ton c et d à toi. Il en est de même
pour x et y.

Michel Talon

unread,
May 22, 2017, 8:40:56 AM5/22/17
to
Le 22/05/2017 à 12:19, François Guillet a écrit :
> Je trouve
> x = ( 2*r²*c ±2*r*d* √(c² + d² - r²) ) / 2*(c²+r²)
> y = √(r²-x²)
>
> La position du point de tangence a l'air correct.
> J'ai commencé l'implémentation, reste un souci avec l'arc de cercle qui
> ne rejoint pas ce point...
>
> Je ferai un petit bilan à la fin de l'autre fil "Cherche fonction" quand
> tout sera _au point_ (c'est le cas de dire).

Mes chers participants,

ça doit être l'arrivée de l'été, mais pas mal d'assertions sont bizarres
dans ce fil ...

Une droite coupe un cercle (ou toute courbe de degré 2) en deux points.
Elle est tangente si ces deux points sont confondus. Application
y=px+q coupe x^2+y^2=R^2 aux points tels que

x^2+(px+q)^2=R^2

ce qui fait une équation de degré 2 pour x,
x^2(1+p^2) + 2pqx + q^2-R^2 =0
de discriminant
R^2 (1+p^2) -q^2

On a tangence si ce discriminant s'annule.
Pour p donné, il y a évidemment deux solutions opposées pour q, ce qui
est cohérent. Si la droite passe par un point fixe, on a une relation
q=ap+b et donc une équation du second degré pour p qui donne les deux
tangentes.

Quelq'un a mentionné l'idée d'utiliser l'intersection de deux cercles.
En général c'est une mauvaise idée car deux courbes de degré 2 ont 4
points d'intersection. Dans le cas particulier des cercles deux de ces
points sont spéciaux (points à l'infini de coordonnées (1 i 0) et (1 -i
0)) mais ce n'est clairement pas la bonne algèbre à faire.


--
Michel Talon

Julien Arlandis

unread,
May 22, 2017, 9:18:40 AM5/22/17
to
Le 22/05/2017 à 14:40, Michel Talon a écrit :
> Le 22/05/2017 à 12:19, François Guillet a écrit :
>> Je trouve
>> x = ( 2*r²*c ±2*r*d* √(c² + d² - r²) ) / 2*(c²+r²)
>> y = √(r²-x²)
>>
>> La position du point de tangence a l'air correct.
>> J'ai commencé l'implémentation, reste un souci avec l'arc de cercle qui
>> ne rejoint pas ce point...
>>
>> Je ferai un petit bilan à la fin de l'autre fil "Cherche fonction" quand
>> tout sera _au point_ (c'est le cas de dire).
>
> Mes chers participants,
>
> ça doit être l'arrivée de l'été, mais pas mal d'assertions sont bizarres
> dans ce fil ...
>
> Une droite coupe un cercle (ou toute courbe de degré 2) en deux points.
> Elle est tangente si ces deux points sont confondus.

Ou bien si la droite qui joint le centre du cercle à ces deux points est
perpendiculaire. En fait il n'en reste plus qu'un mais c'est bien ce qui a
été mis en équation.

François Guillet

unread,
May 22, 2017, 10:27:18 AM5/22/17
to
Après mûre réflexion, Julien Arlandis a écrit :
Ca y est, c'est bon, il y avait juste une faute de frappe :
x = ( r²*c ±r*d* √(c² + d² - r²) )/(c²+d²)
(et pas (c²+r²) au dénominateur)

Julien Arlandis

unread,
May 22, 2017, 11:01:28 AM5/22/17
to
Note que l'équation (1) peut se réécrire
(x - c/2)² + (y - d/2)² = (c/2)² + (d/2)²
Ce qui correspond à l'équation du cercle qui a pour diamètre le centre
de ton premier cercle et le point (x,y).

On retrouve ainsi la solution évoquée par Olivier.

ast

unread,
May 23, 2017, 3:44:33 AM5/23/17
to

"Julien Arlandis" <julien....@gmail.com> a écrit dans le message de
news:ghKZM1RvV-JRF_rkWR0ur8hbjm8@jntp...

> Appelons A le point tangent, O le centre du cercle et B le point (c,d).
> Pour déterminer X tu as besoin de mettre en équation le fait que :

X = A ?

Julien Arlandis

unread,
May 23, 2017, 7:23:03 AM5/23/17
to
Oui, petite erreur.

François Guillet

unread,
May 23, 2017, 1:02:41 PM5/23/17
to
Ceci clôt en ce qui me concerne les fils [cherche fonction], [Pente
d'une bissectrice] et [Tangente à un cercle passant par un point
extérieur au cercle], en récapitulant pourquoi je les ai ouvert et
pourquoi ils auront été utiles.

Tout cela avait pour but de faire une conversion d'index x vers y, où x
pointe un bloc de données, et y pointe les colonnes pixels d'un
graphique où les représenter. En pratique ces valeurs sont discrètes,
mais pour la conversion x -> y il est plus facile d'utiliser des
valeurs réelles, normalisées entre 0 et 1.

Normalement y=x.
Pour faire une "loupe" permettant de zoomer une section, on a besoin
d'une conversion y=p0*x où p0>1 (on représente une largeur Δx par une
plus grande largeur Δy).
Et comme on veut maintenir dans le graphe l'affichage de toutes les
données, il faut "tasser les x" restants dans une zone y plus petite.
Donc avant et après la loupe, il nous faudra une équation y=p*x où p<1.
En général p sera différent avant et après la loupe.

Enfin, pour améliorer l'effet visuel en ne passant pas brutalement
d'une section à l'autre de "grossissement" différent, on utilise une
courbe qui modifie progressivement la pente dy/dx en garantissant sa
continuité. Les polynômes ne se sont pas avérés l'idéal, j'ai choisi
des arcs de cercle :
http://exvacuo.free.fr/temp/arccercle.jpg

Ceci revient à faire une zone progressive de loupe de chaque côté de sa
section linéaire x1-x2.

Le centre du premier cercle est l'intersection de la bissectrice de la
droite de départ D1 et celle la loupe D0, avec la perpendiculaire à D0
passant par (x1,y1) qui est le début de la loupe linéaire. On a aussi
ainsi le rayon du cercle.

Le second cercle aurait pu être calculé de la même façon, mais alors il
aurait été de taille différente. J'ai préféré garder un cercle
identique afin d'élargir la symétrie de la loupe autour de son centre.
Est-ce que cela a simplifié le problème ? Non ! Même si on a facilement
le centre du second cercle, qui est le symétrique de l'autre par
rapport au centre de la loupe, ça l'a compliqué, parce qu'alors la
pente finale p2 en dépend. Il faut la calculer en cherchant la tangente
qui passe par le point (1,1) final.

Et voilà un exemple du résultat, l'affichage du spectre
électromagnétique de la bande de radiodiffusion des 11 MHz :

http://exvacuo.free.fr/temp/zoomSpectre.jpg

Les 3 images sont prises à des moments un peu différents, donc ce n'est
pas exactement le même cliché, mais on retrouve bien toutes les
stations radio. Avec le zoom x8, on voit les 2 bandes latérales de
modulation AM autour de la porteuse de la station au centre de la
loupe. Les barres verticales sont mises là temporairement pour une
meilleure idée de l'affet.

Merci à tous les participants pour l'aide sinon j'y serais encore ! (ça
a payé, c'est l'essentiel, mais j'ai quand même souffert :-) ).

robby

unread,
May 23, 2017, 2:44:42 PM5/23/17
to
On 23/05/2017 19:02, François Guillet wrote:
> Merci à tous les participants pour l'aide sinon j'y serais encore ! (ça
> a payé, c'est l'essentiel, mais j'ai quand même souffert :-) ).

bravo pour ta perseverance.

Et maintenant, la version 3D (freq+t) ? :-)
--
Fabrice

Julien Arlandis

unread,
May 24, 2017, 5:43:52 AM5/24/17
to
Le 23/05/2017 à 19:02, François Guillet a écrit :

> Et voilà un exemple du résultat, l'affichage du spectre
> électromagnétique de la bande de radiodiffusion des 11 MHz :
>
> http://exvacuo.free.fr/temp/zoomSpectre.jpg

Beau travail. Avec quels outils d'acquisition captures tu ton spectre ?

François Guillet

unread,
May 24, 2017, 8:04:50 AM5/24/17
to
Le 23/05/2017, robby a supposé :
Pour la variation dans le temps, ce n'est pas de la 3D mais j'ai quand
même une "waterfall" que j'ai fondue avec l'affichage du spectre
dynamique. Par exemple ici, quelques MHZ du spectre FM :
http://exvacuo.free.fr/temp/fm.jpg
On a la visibilité sur plusieurs dizaines de secondes.

J'ai pensé à la 3D, je vois bien à quoi tu fais allusion, mais c'est du
boulot et pas ma priorité, qui est le traitement du signal radio. J'ai
quelques petites idées que je voudrais essayer, j'aurai sûrement encore
besoin d'aide en maths.

Simple exemple :
Une très vieille fonction sur les récepteurs radio un peu high-tech
mais analogique, c'est le NB (noise blanker). Quand on a un bruit
impulsionnel et une large bande passante, on détecte la crête et on la
bloque dans le signal temporel avant filtrage du signal utile. C'est
extrêmement efficace. Sinon le filtrage étale l'impulsion dans le
temps, et on se retrouve avec un signal parasite dans des intervalles
de temps où au départ il n'y avait strictement rien.

La fonction NB est implémentée sur le même principe dans les radios
"logicielles".
Je me demandais si l'on ne pourrait pas trouver une fonction
mathématique qui nous permettrait de remplacer la détection et la
suppression en tout ou rien de l'impulsion (ou de toute forme d'onde
qui ne "matche" pas ce qu'on attend des signaux utiles), par un
processus progressif qui élimerait donc même des bruits faibles.
Avec une radio logicielle, il est courant que les signaux utiles
n'utilisent chacun qu'1/100ème à 1/1000éme de la bande passante du
signal traité, or cette caractéristique pourtant discriminatrice n'est
pas exploitée. Evidemment ce n'est pas si simple, parce que la somme
des signaux utiles (non corrélés) est lui-même un signal large bande
qui peut donner l'impression d'un bruit... Il y a matière à réflexion.

François Guillet

unread,
May 24, 2017, 8:22:06 AM5/24/17
to
Julien Arlandis a formulé ce mercredi :
J'ai ça : http://www.sdrplay.com/rsp1/
ça fournit au port USB un flux I/Q jusqu'à environ 600Mb/s pour un
spectre de 8 MHz avec échantillons sur 12 bits.

J'ai aussi quelques clés USB comme ça :
https://www.amazon.com/JahyShow-RTL2832U-RTL-SDR-Receiver-Compatible/dp/B01H830YQ6/ref=sr_1_23
Grâce à un hack on peut transformer ces clés TNT bon marché en
récepteur 25 MHz à 1,6 GHz. Grand engouement partout dans le monde,
avec le résultat par rapport à mes premiers achats, que le prix a
augmenté et qu'elles sont maintenant plus vendues pour "SDR" (software
defined radio), que comme clé TNT !
Là on est en 8 bits donc dynamique limite mais on pallie. Ca suffit
largement pour écouter la FM ou le DAB avec une super qualité, la bande
aviation, les PMR, radioamateurs etc etc Pour débuter à peu de frais,
c'est l'idéal.

Julien Arlandis

unread,
May 24, 2017, 8:37:47 AM5/24/17
to
Et pour écouter la radio tu traites toi même le signal en temps réel ou
bien tu utilises un soft ?

François Guillet

unread,
May 24, 2017, 9:12:54 AM5/24/17
to
Julien Arlandis a formulé la demande :
Pour "écouter", j'ai des softs (en particulier "HDSDR", "SDRConsol",
"SDR#") mais dans le mien la fonction ne devrait plus tarder. Celui que
je fais devra rivaliser avec les autres, mais la barre est placée très
haut (mon seul point d'avance est cette vue non linéaire du spectre. Ca
n'existe nulle part ailleurs, même apparemment chez les pros).

Pour le moment je détecte les matériels, reçois le flux, le traite en
temps réel, affiche le spectre, navigue dans les fréquences par
sélection directe ou à la souris, règle à la souris la bande passante
utile, tout est prêt pour les sorties audio mais je n'ai pas encore
attaqué la démodulation (ce n'est pas le plus dur). Je souhaite
qu'avant, tout soit au point dans l'interface de gestion de fréquences,
affichage, contrôle de gain...
En plus j'en avais assez de l'aspect "Windows" de base et du tordu de
la gestion des contrôles et des fenêtres, j'ai refait de a à z une IHM
avec des contrôles un peu plus seyants (mais 2D).
Un an pour l'ensemble...

Pour les interessés, le site phare sur les "SDR" :
http://www.rtl-sdr.com/
(orienté au départ sur les clés TNT, mais devenu assez généraliste).

Julien Arlandis

unread,
May 24, 2017, 9:49:49 AM5/24/17
to
Sous quelle licence comptes tu distribuer ton logiciel?
Opensource, propriétaire ? Sera t-il multi-plateforme pour ceux qui comme
moi bossent sur mac os ?

François Guillet

unread,
May 24, 2017, 12:21:08 PM5/24/17
to
Julien Arlandis a exposé le 24/05/2017 :
propriétaire, et Windows seulement. A priori ce serait un freeware, si
j'arrive au bout.
J'ai déjà l'expérience d'un shareware qui avait pas trop mal marché,
fin 1990 début 2000, mais j'avais fait des prouesses pour la
protection, ça m'avait pris énormément de temps. Je ne veux plus
recommencer. Le crack a fini par arriver (par les Russes, ça ne change
pas), mais trop tard, le soft était déjà en fin de vie.

Après il faut voir. Il y a des boîtes qui t'achètent les sources, par
ex des fournisseurs de hardware pour l'accompagner d'un soft, ou
simplement parce qu'elles sont intéressées pour reprendre tes trucs
dans leur soft à eux (ça a été le cas de mon logiciel pour DOS, racheté
très tard alors que ça n'intéressait plus aucun utilisateur).

Mais bon, je fais ça pour le fun, ça n'a jamais été une activité pro.

MAIxxx

unread,
May 25, 2017, 10:00:11 AM5/25/17
to
Le 21/05/2017 à 10:57, François Guillet a écrit :
> J'ai un cercle de centre (a,b) et de rayon r.
> J'ai une droite D d'équation y=p*x+k passant par un point (c,d) (donc
> k=d-p*c) :
> http://exvacuo.free.fr/temp/tangcercle.jpg
>
> Je cherche la pente p de la droite pour qu'elle soit tangente au cercle,
> et le point de tangeance (x,y). Il y a 2 solutions.
>
> En appliquant Pythagore,
> (1) r² + (x-c)²+(y-d)² = (x-a)²+(y-b)²
>
> (2) y = p*x+k (point de tangence sur la droite D)
>
> (3) y = -1/p * x + k' (point de tangence sur la droite perpendiculaire à
> D passant par le centre du cercle, k'=b + 1/p * a )
>
> 3 équations, 3 inconnues, pb résolu sauf que je me retrouve bloqué avec
> une équation du 3ème degré.
>
> Comment s'en sort-on ?

Si on centre le cercle en O (0,0) une tangente d'équation Ax +By +C = 0
est telle que
(1) A² + B² -C²/R² = 0 (équation du cercle dite "tangentiellle, le
centre O est à la distance R de la droite,

si la tangente passe par(x0,y0) alors
Ax0 + By0 +C = 0

On elimine C avec (1) d'où :
(A² + B²)R² - (Ax0 +By0)² = 0 A²(R²-x0²) -2ABx0y0 + B²(R²-y0²) =0

La pente p est -A/B (y = px + q et Ax + By + C =0)
on divise (2) par B²
p²(R²-x0²) + 2px0y0 + R²-y0² =0

deux solution (réelles ou complexes!)

p = {-x0y0 +/-SQRT[ x0²y0² - (R²-y0²)(R²-x0²)] }/(R² - x0²)
et
q = y0 -px0 (car y0= px0 + q)

le point de contact x',x' satisfait à x'² + y'² = R² et y'=px'+q
x'² + (px'+q)² -R² =0 x' est la racine double
x' = -pq/(1+p²)
y' = px'+q = q/(1+p²)

Si le cercle n'est pas centré en (0,0) mais en ( Ox,Oy )
le point d'où on tire la tangente est x1 = Ox+x0 y1 = Oy+y0 et le point
de contact x'1 = Ox+x' y'1=Oy + y'

Aux erreurs de calcul près.



--
Si vous mettez deux Français ensemble, et s'ils sont d'accord sur tout,
c'est qu'un des deux est un étranger.
0 new messages