2010-05-06 7 views
6

Ich habe ein Rechteck in NET in dem ich eine Ellipse zeichnen.Einen Punkt auf einem Ellipsenumfang finden, der innerhalb eines Rechtecks ​​mit Mittelpunkt, Höhe und Breite liegt?

weiß, dass ich die Breite, Höhe und den Mittelpunkt des Rechtecks.

Natürlich ist der Mittelpunkt des Rechtecks ​​ist auch der Mittelpunkt der Ellipse.

Ich weiß, wie man einen Punkt auf einem Kreis zu berechnen, aber ich habe keine Ahnung von einer Ellipse haben.

ich diese Parameter und einen Winkel haben, ich brauche den Punkt auf der Ellipse, kann jemand die Formel posten?

Ich sah irgendwo müssen Sie 2 Punkte berechnen, in dem zwei Radien gehen wird, ist die Summe der Radien festgelegt werden, und sie werden entsprechend in der Größe ändern.

Ich weiß nicht, wie das zu tun, ich habe nur das Rechteck Höhe, Breite und Mittelpunkt und natürlich der Winkel wünsche ich an den Punkt zu finden.

Dank für jede Hilfe Shlomi

+2

Das gehört auf http://mathoverflow.net/ –

+2

@Ganesh R: nicht alle Fragen zu Mathematik auf mathoverflow gehören. In der Tat, * sehr wenige * der Fragen, die Leute auf SO * sagen * gehören auf mathoverflow gehören tatsächlich auf mathoverflow. Lesen Sie die FAQ. – AakashM

+0

@Shlomi: sind die Seiten des Rechtecks ​​parallel zu den Achsen? Ja – AakashM

Antwort

13

Sie können die canonical form in polar coordinates für Ihr Problem verwenden, wo die Breite und Höhe eines Rechtecks ​​w und h sind.

alt text

alt text

wo t ein Winkel im Bogenmaß ist, a ist w/2 und b wird h/2

So plotten Ihre Ellipse, alles, was Sie tun müssen, ist variieren t von - Grad (in Radiant ist also, und 2pi) und je nachdem, wie Sie Raum heraus t Sie die Punkte auf der Ellipse erhalten.

Da Ihr Rechteck nicht am Ursprung zentriert ist, werden Sie es durch die Koordinaten der Mitte des Rechtecks ​​versetzt haben, sagen wir, (C x, C y)

const double C_x = 10, C_y = 20, w = 40, h = 50; 
for(double t = 0; t <=2*pi; t+=0.01) 
{ 
    double X = C_x+(w/2)*cos(t); 
    double Y = C_y+(h/2)*sin(t); 
    // Do what you want with X & Y here 
} 
+0

Danke, das hat den Trick gemacht. –

+0

Was ist, wenn ich nur ein gegebenes X weitergeben will und das mit der Elipse verbundene Y bekommen soll? Wie soll ich vorgehen? –

+0

Dann können Sie für "t" lösen und es in "Y (t)" stecken. Z.B. Wenn "a = 1, b = 1" und du hast "X = 1", dann ist "X = a cos (t)" oder "1 = 1 * cos (t)", was bedeutet, dass "t = 0" eine Lösung ist . Somit ist "Y (t) = 0". – Jacob