2010-10-31 15 views
1

Un graphique de ce problème est ici:Ellipse adapter tangentally à une ligne de modifier un axe

http://dl.dropbox.com/u/13390614/Question.jpg

Prendre un axe ellipse alignée avec une partie fixe axe mineur, et étirer l'ellipse le long son axe principal jusqu'à ce qu'il devienne tangent à un segment de ligne (A dans le graphique).

Quelles sont les coordonnées du tangental point (P), ou, quel serait l'axe principal longueur?

Je sais comment calco l'axe majeur si je le point tangental, et peut calco le point si je l'axe principal, mais non plus, je suis déconcerté

J'ai aussi résolu ceci lorsque l'axe secondaire est étiré avec le majeur, en maintenant le rapport. Le problème est lorsqu'un axe est fixe.

Toute idée serait appréciée, en particulier via trig.

Gary

+0

Comment cette question C++ est-elle liée? Je dirais que c'est juste des maths .. – flownt

Répondre

2

Tenir compte

x^2/max^2 + y^2/fix^2 = 1; % ellipse 
Ax + By + C = 0;   % segment line 

Puis

x^2/max^2 + (Ax + C)^2/(B*fix)^2 = 1; // Quadratic equation 

Votre solution est quand discriminante est égale à 0.

x^2 (1/max^2 + A^2/(B*fix)^2) 
+ x  2 AC/(B*fix)^2 
+  C^2/(B*fix)^2 - 1 
= 0 

a = (1/max^2 + A^2/(B*fix)^2); 
b = 2 AC/(B*fix)^2; 
c = C^2/(B*fix)^2 - 1. 

b^2 = 4ac ==> a = b^2/c ==> 
a = 4(AC)^2/(B*fix)^4/(C^2/(B*fix)^2 - 1) 
1/max^2 = 4(AC)^2/(B*fix)^4/(C^2/(B*fix)^2 - 1) - A^2/(B*fix)^2); 
0

Le point P a y coordonnée r^2/h, wh Il y a donc l'axe semi-mineur de l'ellipse (donc ici r = 0,75) et h est la coordonnée y du point où l'extension de votre segment rencontre l'axe y (appelez ce point H).

Pourquoi est-ce? Eh bien, imaginons que nous connaissions la bonne ellipse et le point P, et que nous effectuions maintenant la transformation affine (x, y) -> (kx, y) où k est choisi pour que l'ellipse se transforme en cercle. Cela ne bouge pas H, puisque H est sur l'axe y, et il déplace P vers un point P 'avec la même coordonnée y de sorte que HP' est le segment tangent de H au cercle de rayon r. Par des triangles droits similaires, P '(et donc P) a la coordonnée y r^2/h.

Bien sûr, il peut arriver que P ne se trouve pas sur le segment d'origine, mais seulement son extension à une ligne, ou que l'axe vertical soit réellement le grand axe de l'ellipse résultante; vous devrez peut-être les vérifier en fonction de votre application.