Witam,
mam spory problem, piszę sterownik do plotera (drukarka z ołówkiem ) i chciałbym żeby potrafił też narysować elipsy. Ploter rozumie tylko linie proste, więc muszę stworzyć dwie funkcje, które stworzą odpowiednio dużo punktów leżących na krawędzi elipsy, a maszyna potem te punkty połączy liniami (powstanie wielokąt a'la elipsa).
Funkcje które tworzą koło wyglądają tak:
Dla koła o promieniu R i środku w punktach P i Q:
\(\displaystyle{ fx( \alpha , P , R) = R \cdot cos( \alpha ) + P}\)
\(\displaystyle{ fy( \alpha , Q , R) = R \cdot sin( \alpha ) + Q}\)
Teraz podając do odpowiednich funkcji P, Q, R i \(\displaystyle{ \alpha}\) z zakresu od 0 do \(\displaystyle{ 2 \pi}\) otrzymam kolejne współrzędne punktów leżących na krawędzi koła:
\(\displaystyle{ P( fx( \alpha , P , R ); fy( \alpha , P , R) )}\)
To była prościzna.
Podobnego "myku" na elipsę szukam już kilka dni.
Z danych o tej elipsie będę miał na pewno współrzędne obu ognisk i jeden punkt leżący na krawędzi...
Będę wdzięczny za wszelkie sugestie, pomysły...
pozdrawiam
Funkcje generujące współrzędne x i y punktów na elipsie
Funkcje generujące współrzędne x i y punktów na elipsie
Parametryzacja elipsy
\(\displaystyle{ x=x_0+a\cos t,\;y=y_0+b\sin t}\)
Prowadzi to do równania
\(\displaystyle{ \frac{(x-x_0)^2}{a^2}+\frac{(y-y_0)^2}{b^2}=\cos^2 t+\sin^2t=1,}\)
a jest to w istocie równanie elipsy.
\(\displaystyle{ x=x_0+a\cos t,\;y=y_0+b\sin t}\)
Prowadzi to do równania
\(\displaystyle{ \frac{(x-x_0)^2}{a^2}+\frac{(y-y_0)^2}{b^2}=\cos^2 t+\sin^2t=1,}\)
a jest to w istocie równanie elipsy.
-
- Użytkownik
- Posty: 7
- Rejestracja: 18 paź 2009, o 11:35
- Płeć: Mężczyzna
- Lokalizacja: Szprotawa
- Podziękował: 1 raz
Funkcje generujące współrzędne x i y punktów na elipsie
szw1710, dzięki!!
A po drobnych przeróbkach można jeszcze obrócić elipsę o parę stopni \(\displaystyle{ \alpha}\):
\(\displaystyle{ x'( \alpha ) = (x_{0} + a cos(t)) cos( \alpha ) - (y_{0} + b sin(t)) sin( \alpha )}\)
\(\displaystyle{ y'( \alpha ) = (x_{0} + a cos(t)) sin( \alpha ) + (y_{0} + b sin(t)) cos( \alpha )}\)
jeśli coś pokręciłem to wybaczcie, dzisiaj pierwszy raz używam LaTeX-a a i we wzorach mogę się mylić
edit:poprawione
A po drobnych przeróbkach można jeszcze obrócić elipsę o parę stopni \(\displaystyle{ \alpha}\):
\(\displaystyle{ x'( \alpha ) = (x_{0} + a cos(t)) cos( \alpha ) - (y_{0} + b sin(t)) sin( \alpha )}\)
\(\displaystyle{ y'( \alpha ) = (x_{0} + a cos(t)) sin( \alpha ) + (y_{0} + b sin(t)) cos( \alpha )}\)
jeśli coś pokręciłem to wybaczcie, dzisiaj pierwszy raz używam LaTeX-a a i we wzorach mogę się mylić
edit:poprawione
Ostatnio zmieniony 1 lut 2012, o 20:20 przez l153k, łącznie zmieniany 1 raz.
Funkcje generujące współrzędne x i y punktów na elipsie
Elipsę chyba. W drugiej linii Twoich wzorów masz minus zamiast plusa.
Wzór na obrót punktu \(\displaystyle{ (x,y)}\) o kąt \(\displaystyle{ \alpha}\) dookoła początku układu:
\(\displaystyle{ \left\{
\begin{matrix}
x'=x\cos\alpha-y\sin\alpha\\
y'=x\sin\alpha+y\cos\alpha
\end{matrix}}\)
Dobrze tu stosować liczby zespolone wraz z ich interpretacją geometryczną.
Obrót punktu \(\displaystyle{ z=x+iy}\) dookoła zera o kąt \(\displaystyle{ \alpha}\) realizuje się przez pomnożenie liczby \(\displaystyle{ z}\) przez liczbę \(\displaystyle{ \cos\alpha+i\sin\alpha}\):
\(\displaystyle{ x'+iy'=(x+iy)(\cos\alpha+i\sin\alpha)}\)
Porównując części rzeczywiste i urojone dostajemy powyższe wzory. Dlatego tak łatwo je napisać bez pamiętania
Wzór na obrót punktu \(\displaystyle{ (x,y)}\) o kąt \(\displaystyle{ \alpha}\) dookoła początku układu:
\(\displaystyle{ \left\{
\begin{matrix}
x'=x\cos\alpha-y\sin\alpha\\
y'=x\sin\alpha+y\cos\alpha
\end{matrix}}\)
Dobrze tu stosować liczby zespolone wraz z ich interpretacją geometryczną.
Obrót punktu \(\displaystyle{ z=x+iy}\) dookoła zera o kąt \(\displaystyle{ \alpha}\) realizuje się przez pomnożenie liczby \(\displaystyle{ z}\) przez liczbę \(\displaystyle{ \cos\alpha+i\sin\alpha}\):
\(\displaystyle{ x'+iy'=(x+iy)(\cos\alpha+i\sin\alpha)}\)
Porównując części rzeczywiste i urojone dostajemy powyższe wzory. Dlatego tak łatwo je napisać bez pamiętania
-
- Użytkownik
- Posty: 7
- Rejestracja: 18 paź 2009, o 11:35
- Płeć: Mężczyzna
- Lokalizacja: Szprotawa
- Podziękował: 1 raz
Funkcje generujące współrzędne x i y punktów na elipsie
Parametryzacja. Tego słówka brakowało mi w tej krucjacie.