2010-05-06 27 views
6

Tôi có một hình chữ nhật trong .NET, trong đó tôi vẽ một hình elip.tìm một điểm trên đường tròn hình elip bên trong hình chữ nhật có điểm trung tâm, chiều cao và chiều rộng?

Tôi biết chiều rộng, chiều cao và điểm trung tâm của hình chữ nhật đó.

Tất nhiên, điểm trung tâm của hình chữ nhật cũng là điểm trung tâm của hình elip.

Tôi biết cách tính một điểm trên hình tròn, tuy nhiên tôi không có manh mối về một hình elip.

Tôi có các thông số và góc, tôi cần điểm trên hình elip, ai đó có thể đăng công thức?

Tôi thấy một nơi nào đó bạn cần tính 2 điểm trong đó 2 bán kính sẽ đi, tổng của bán kính sẽ được cố định và chúng sẽ thay đổi kích thước tương ứng.

Tôi không biết làm thế nào để làm điều đó, tôi chỉ có chiều cao hình chữ nhật, chiều rộng và điểm trung tâm và tất nhiên góc tôi muốn tìm điểm.

nhờ sự giúp đỡ nào Shlomi

+2

Điều này thuộc về http://mathoverflow.net/ –

+2

@Ganesh R: không phải tất cả các câu hỏi về toán học đều thuộc về quá trình toán học. Trong thực tế, * rất ít * trong số các câu hỏi mà mọi người trên SO * nói * thuộc về mathoverflow thực sự thuộc về mathoverflow. Có một đọc các câu hỏi thường gặp của nó. – AakashM

+0

@Shlomi: là các cạnh của hình chữ nhật song song với các trục không? – AakashM

Trả lời

13

Bạn có thể sử dụng canonical form in polar coordinates cho vấn đề của bạn, nơi chiều rộng và chiều cao của hình chữ nhật là wh tương ứng.

alt text

alt text

nơi t là một góc trong radian, mộtw/2b được h/2

Vì vậy, để mưu hình elip của bạn, tất cả những gì bạn phải làm là thay đổi t từ - độ (theo radian vì vậy đó là và 2pi) và tùy thuộc vào cách bạn không gian ra t, bạn sẽ có được điểm trên elip.

Kể từ khi hình chữ nhật của bạn không được tập trung ở các xứ, bạn sẽ phải bù đắp nó bằng tọa độ của trung tâm của hình chữ nhật, nói, (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

Cảm ơn, đã làm các trick. –

+0

Điều gì sẽ xảy ra nếu tôi chỉ muốn chuyển một X đã cho và nhận được Y liên quan đến elipse? Tôi nên tiến hành như thế nào? –

+0

Sau đó, bạn có thể giải quyết 't' và cắm nó vào' Y (t) '. Ví dụ. nếu 'a = 1, b = 1' và bạn có' X = 1', thì 'X = a cos (t)' hoặc '1 = 1 * cos (t)' có nghĩa là 't = 0' là một giải pháp . Do đó, 'Y (t) = 0'. – Jacob

Các vấn đề liên quan