2010-05-06 12 views
6

Tengo un rectángulo en .NET en el que dibujo una elipse.buscando un punto en una circunferencia de elipse que está dentro de un rectángulo que tiene punto central, alto y ancho?

Conozco el ancho, la altura y el punto central de ese rectángulo.

Por supuesto, el punto central del rectángulo es también el punto central de la elipse.

Sé cómo calcular un punto en un círculo, sin embargo, no tengo ni idea de una elipse.

Tengo esos parámetros y un ángulo, necesito el punto en la elipse, ¿alguien puede publicar la fórmula?

Vi un lugar en el que necesita calcular 2 puntos en los que irán 2 radios, se fijará la suma de los radios y cambiarán de tamaño en consecuencia.

No sé cómo hacer eso, solo tengo la altura, el ancho y el centro del rectángulo y, por supuesto, el ángulo en el que deseo encontrar el punto.

gracias por cualquier ayuda Shlomi

+2

Esto pertenece a http://mathoverflow.net/ –

+2

@Ganesh R: no todas las preguntas sobre matemáticas pertenecen a mathoverflow. De hecho, * muy pocas * de las preguntas que las personas de SO * dicen * que pertenecen a mathoverflow realmente pertenecen a mathoverflow. Lea sus preguntas frecuentes. – AakashM

+0

@Shlomi: ¿los lados del rectángulo son paralelos a los ejes? – AakashM

Respuesta

13

Usted puede utilizar el canonical form in polar coordinates para su problema en el que la anchura y la altura de un rectángulo es w y h, respectivamente.

alt text

alt text

donde t es un ángulo en radianes, un es w/2 y b se h/2

Así que para trazar su elipse, todo lo que tiene que hacer es variar t de 0 a 360 grados (en radianes por lo que de y 2 pi) y dependiendo de cómo espaciar t, se obtiene los puntos de la elipse.

Desde el rectángulo no se centra en el origen, tendrá que compensar por las coordenadas del centro del rectángulo, digamos, (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

Gracias, eso hizo el truco. –

+0

¿Qué pasa si solo quiero pasar una X dada y obtener la Y relacionada con el elipse? ¿Cómo debo proceder? –

+0

Luego puede resolver para 't' y conectarlo a' Y (t) '. P.ej. si 'a = 1, b = 1' y tienes' X = 1', entonces 'X = a cos (t)' o '1 = 1 * cos (t)' que significa 't = 0' es una solución . Por lo tanto, 'Y (t) = 0'. – Jacob

Cuestiones relacionadas