2011-01-15 15 views
0

Wenn zwei Kreise schneiden, wie kann ich nach oben auf dem Y-Achse inneren Kreis bewegen, bis es tangential zu dem äußeren KreisBewegen inneren Kreis tangential zum äußeren Kreis

+0

Wonach fragen Sie? Wie zeichne ich die Kreise? Die Mathematik zu berechnen, wie weit es zu bewegen? Geben Sie einige weitere Informationen über das, was Sie bisher versucht haben, und etwas von Ihrem Code. –

+3

Wenn ich fragen darf, wie genau ist das eine C# -Frage, abgesehen von der Tatsache, dass Sie eventuell dieses * maths * -Problem in dieser speziellen Sprache kodieren wollen? – stakx

+0

@ Alpha-Maus: Ich bin mir nicht sicher. Ich denke, Math Overflow ist für fortgeschrittene mathematische Probleme. Was ich sagen wollte, ist, dass die Frage falsch formuliert ist. Wenn ich ein 'C#' - Tag sehe, erwarte ich, dass ich mich mit einem bestimmten C# -Code befasse. Es scheint jedoch, dass das OP noch nicht einmal Code hat. Es wäre gut, wenn er/sie wenigstens ein paar Infos zur Verfügung stellen könnte, wo er gerade festsitzt. – stakx

Antwort

0

Wenn die Kreise haben Radien R1 und R2, vorausgesetzt R1 <= R2 wird, dann sie werden tangential sein, wenn der Abstand zwischen den Zentren R2 - R1 oder R2 + R1 ist, je nachdem, ob Sie das eine oder das andere wollen. Wenn dx der x-Abstand zwischen den Zentren ist, dann müssen Sie

dy = sqrt(D * D - dx * dx) 

Verschieben einen Kreis, so dass der y-Abstand zwischen den Zentren dy ist. Beachten Sie, dass dy komplex ist und sqrt einen Fehler verursacht, wenn sich die Kreise nicht schneiden.

2

alt text