2010-05-06 13 views
6

Mam prostokąt w .NET, w którym rysuję elipsy.znajdowanie punktu na obwodzie elipsy, który znajduje się wewnątrz prostokąta o punkcie środkowym, wysokości i szerokości?

Znam szerokość, wysokość i punkt środkowy tego prostokąta.

Oczywiście punkt środkowy prostokąta jest również środkowym punktem elipsy.

Wiem, jak obliczyć punkt na kole, jednak nie mam pojęcia o elipsie.

Mam te parametry i kąt, potrzebuję punktu na elipsie, czy ktoś może wstawić wzór?

Widziałem gdzieś, gdzie trzeba obliczyć 2 punkty, w których pójdą 2 promienie, suma promieni zostanie ustalona i odpowiednio się zmienią.

Nie wiem, jak to zrobić, mam tylko wysokość, szerokość i punkt środkowy prostokąta i oczywiście kąt, na którym chcę znaleźć punkt.

dzięki za wszelką pomoc Shlomi

+2

To należy do http://mathoverflow.net/ –

+2

@Ganesh R: nie wszystkie pytania dotyczące matematyki należą do przepływu zadań matematycznych. W rzeczywistości * bardzo niewiele * pytań, które ludzie na SO * mówią * należą do matematyki, w rzeczywistości należą do przepływu zadań. Przeczytaj przeczytane FAQ. – AakashM

+0

@Shlomi: czy boki prostokąta są równoległe do osi? – AakashM

Odpowiedz

13

Można użyć canonical form in polar coordinates swojego problemu gdzie szerokość i wysokość prostokąta jest w i h odpowiednio.

alt text

alt text

gdzie t jest kąt w radianach jest W/2 i b jest H/2

więc wykreślić Twoja elipsa, wszystko co musisz zrobić, to zmienić t z do 360 stopni (w radianach więc to i 2pi) iw zależności od tego, jak przestrzeń na zewnątrz t, otrzymasz punkty na elipsy.

Ponieważ prostokąt nie koncentruje się na pochodzeniu, trzeba będzie przesunięcie go przez współrzędne środka prostokąta, powiedzmy, (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

Dziękuję, to się udało. –

+0

Co, jeśli chcę po prostu przekazać dane X i powiązać Y z elipse? Jak powinienem wykonać? –

+0

Następnie możesz rozwiązać dla 't' i podłączyć go do' Y (t) '. Na przykład. jeśli 'a = 1, b = 1' i masz' X = 1', to 'X = a cos (t)' lub '1 = 1 * cos (t)' co oznacza, że ​​'t = 0' jest rozwiązaniem . Zatem "Y (t) = 0". – Jacob

Powiązane problemy