Discussion:
Tangente à un cercle passant par un point extérieur au cercle
(trop ancien pour répondre)
François Guillet
2017-05-21 08:57:48 UTC
Permalink
Raw Message
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) :
Loading Image...

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
2017-05-21 17:11:44 UTC
Permalink
Raw Message
Bonjour,
Post by François Guillet
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
[...]
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
Olivier Miakinen
2017-05-21 17:19:29 UTC
Permalink
Raw Message
Post by Olivier Miakinen
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
2017-05-21 18:52:12 UTC
Permalink
Raw Message
Post by Olivier Miakinen
Bonjour,
Post by François Guillet
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
[...]
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.
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 ! :-(
Julien Arlandis
2017-05-21 17:18:05 UTC
Permalink
Raw Message
Post by François Guillet
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
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).
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²
François Guillet
2017-05-21 17:42:32 UTC
Permalink
Raw Message
Post by François Guillet
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
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
2017-05-21 17:51:10 UTC
Permalink
Raw Message
Post by François Guillet
Post by François Guillet
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
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).
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
2017-05-21 18:13:18 UTC
Permalink
Raw Message
Post by Julien Arlandis
Post by François Guillet
"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
2017-05-21 19:08:15 UTC
Permalink
Raw Message
Post by Julien Arlandis
Post by François Guillet
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
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).
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.
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.
...
(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é.
Julien Arlandis
2017-05-21 19:31:40 UTC
Permalink
Raw Message
Post by François Guillet
Post by Julien Arlandis
Post by François Guillet
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
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).
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.
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.
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.
Post by François Guillet
...
(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
2017-05-22 10:19:48 UTC
Permalink
Raw Message
Post by Julien Arlandis
Post by Julien Arlandis
Post by François Guillet
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
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).
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.
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.
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.
Post by Julien Arlandis
...
(1) xc + yd = R²
(2) x² + y² = R²
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
2017-05-22 11:43:00 UTC
Permalink
Raw Message
Post by François Guillet
Post by Julien Arlandis
Post by Julien Arlandis
Post by François Guillet
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
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).
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.
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.
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.
Post by Julien Arlandis
...
(1) xc + yd = R²
(2) x² + y² = R²
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).
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
2017-05-22 11:45:39 UTC
Permalink
Raw Message
Post by François Guillet
Post by Julien Arlandis
Post by Julien Arlandis
Post by François Guillet
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
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).
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.
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.
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.
Post by Julien Arlandis
...
(1) xc + yd = R²
(2) x² + y² = R²
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).
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.
François Guillet
2017-05-22 14:27:18 UTC
Permalink
Raw Message
Post by François Guillet
Post by François Guillet
Post by Julien Arlandis
Post by François Guillet
Post by Julien Arlandis
Post by François Guillet
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
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).
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.
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.
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.
Post by François Guillet
Post by Julien Arlandis
...
(1) xc + yd = R²
(2) x² + y² = R²
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).
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.
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
2017-05-22 15:01:08 UTC
Permalink
Raw Message
Post by François Guillet
Post by François Guillet
Post by François Guillet
Post by Julien Arlandis
Post by François Guillet
Post by Julien Arlandis
Post by François Guillet
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
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).
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.
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.
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.
Post by François Guillet
Post by Julien Arlandis
...
(1) xc + yd = R²
(2) x² + y² = R²
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).
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.
x = ( r²*c ±r*d* √(c² + d² - r²) )/(c²+d²)
(et pas (c²+r²) au dénominateur)
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.
Michel Talon
2017-05-22 12:40:54 UTC
Permalink
Raw Message
Post by François Guillet
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
2017-05-22 13:18:20 UTC
Permalink
Raw Message
Post by Michel Talon
Post by François Guillet
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.
Olivier Miakinen
2017-05-21 18:11:55 UTC
Permalink
Raw Message
Post by François Guillet
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
François Guillet
2017-05-21 19:09:46 UTC
Permalink
Raw Message
Post by Olivier Miakinen
Post by François Guillet
Post by Julien Arlandis
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.
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
ast
2017-05-23 07:44:27 UTC
Permalink
Raw Message
Post by Julien Arlandis
Appelons A le point tangent, O le centre du cercle et B le point (c,d).
X = A ?
Julien Arlandis
2017-05-23 11:22:44 UTC
Permalink
Raw Message
Post by ast
Post by Julien Arlandis
Appelons A le point tangent, O le centre du cercle et B le point (c,d).
X = A ?
Oui, petite erreur.
François Guillet
2017-05-23 17:02:41 UTC
Permalink
Raw Message
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 :
Loading Image...

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 :

Loading Image...

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
2017-05-23 18:44:41 UTC
Permalink
Raw Message
Post by François Guillet
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
François Guillet
2017-05-24 12:04:50 UTC
Permalink
Raw Message
Post by robby
Post by François Guillet
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) ? :-)
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 :
Loading Image...
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.
Julien Arlandis
2017-05-24 09:43:31 UTC
Permalink
Raw Message
Post by François Guillet
Et voilà un exemple du résultat, l'affichage du spectre
http://exvacuo.free.fr/temp/zoomSpectre.jpg
Beau travail. Avec quels outils d'acquisition captures tu ton spectre ?
François Guillet
2017-05-24 12:22:06 UTC
Permalink
Raw Message
Post by Julien Arlandis
Et voilà un exemple du résultat, l'affichage du spectre électromagnétique
http://exvacuo.free.fr/temp/zoomSpectre.jpg
Beau travail. Avec quels outils d'acquisition captures tu ton spectre ?
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
2017-05-24 12:37:27 UTC
Permalink
Raw Message
Post by François Guillet
Post by Julien Arlandis
Et voilà un exemple du résultat, l'affichage du spectre électromagnétique
http://exvacuo.free.fr/temp/zoomSpectre.jpg
Beau travail. Avec quels outils d'acquisition captures tu ton spectre ?
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.
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.
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
2017-05-24 13:12:54 UTC
Permalink
Raw Message
Post by François Guillet
Post by Julien Arlandis
Et voilà un exemple du résultat, l'affichage du spectre électromagnétique
http://exvacuo.free.fr/temp/zoomSpectre.jpg
Beau travail. Avec quels outils d'acquisition captures tu ton spectre ?
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.
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.
Et pour écouter la radio tu traites toi même le signal en temps réel ou bien
tu utilises un soft ?
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
2017-05-24 13:49:28 UTC
Permalink
Raw Message
Post by François Guillet
Post by François Guillet
Post by Julien Arlandis
Et voilà un exemple du résultat, l'affichage du spectre électromagnétique
http://exvacuo.free.fr/temp/zoomSpectre.jpg
Beau travail. Avec quels outils d'acquisition captures tu ton spectre ?
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.
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.
Et pour écouter la radio tu traites toi même le signal en temps réel ou bien
tu utilises un soft ?
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...
http://www.rtl-sdr.com/
(orienté au départ sur les clés TNT, mais devenu assez généraliste).
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
2017-05-24 16:21:08 UTC
Permalink
Raw Message
Post by Julien Arlandis
Post by François Guillet
Post by Julien Arlandis
Post by François Guillet
Post by Julien Arlandis
Post by François Guillet
Et voilà un exemple du résultat, l'affichage du spectre
http://exvacuo.free.fr/temp/zoomSpectre.jpg
Beau travail. Avec quels outils d'acquisition captures tu ton spectre ?
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.
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.
Et pour écouter la radio tu traites toi même le signal en temps réel ou
bien tu utilises un soft ?
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...
http://www.rtl-sdr.com/
(orienté au départ sur les clés TNT, mais devenu assez généraliste).
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 ?
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
2017-05-25 13:59:42 UTC
Permalink
Raw Message
Post by François Guillet
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
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.
Loading...