Dzień dobry, poszukuję programu, bądź apletu, który rysowałby wykres epicykloidy po wpisaniu określonych parametrów. Tylko teraz diabeł tkwi w szczegółach, bo ja już kilka programów i apletów znalazłem, ale… albo są to rozbudowane programy, w których – jakbym poświęcił pół roku na naukę – to może i bym przez to przebrnął, albo są to proste aplety, niespełniające założeń, których potrzebuję. Już wyjaśniam, o co chodzi:
Jak wiadomo, Wenus i Ziemia, podróżując po swych orbitach, wykreślają w przestrzeni specyficzną epicykloidę, będącą graficznym odwzorowaniem „PRAWIE rezonansu 13/8”. To słówko „PRAWIE” jest tu dość istotne, ponieważ startując z koniunkcji dolnej, po każdych ośmiu latach ziemskich (Wenus w tym czasie robi 13 okrążeń wokół Słońca) obie planety ustawiają się ponownie w koniunkcji dolnej, ale z drobnym przesunięciem w stosunku do pozycji sprzed ośmiu lat. Niedopasowanie po każdym cyklu wynosi coś około 1,5%. Warto dodać, że owa epicykloida powstaje zarówno w modelu heliocentrycznym, jak i geocentrycznym. W pierwszym przypadku wykreśla ją punkt pośrodku wirtualnej poprzeczki, którą połączymy krążące wokół Słońca planety. W drugim przypadku kreśli ją sama Wenus, poruszająca się po orbicie Słońca, które okrąża Ziemię.
Potrzebowałbym więc takiej pomocy naukowej, która wykreśliłaby mi tę epicykloidę, obojętnie w którym modelu, ale z możliwością dokonywania KOREKTY PARAMETRÓW. A konkretnie:
1) Eliminujemy orbity eliptyczne, zastępując je kołowymi.
2) Regulujemy promienie orbit.
3) Regulujemy okresy orbitalne.
W efekcie powinniśmy otrzymać matematyczny model orbit obydwu planet, zgodny w stu procentach z wykresem epicykloidy (czyli po ośmiu latach planety meldują się dokładnie w pozycji startowej).
Od razu przyznam się, że jestem cienki bolek w matematykę i programowanie Po prostu nie dam rady sobie czegoś takiego napisać. Dlatego idealna dla mnie byłaby jedna z dwóch opcji:
1) Prosty aplet, który rysowałby TĘ konkretną epicykloidę, dając wspomniane wyżej możliwości manewru.
2) Interaktywny plik graficzny, który dałoby się odpalić w jakimś programie, typu np. CABRI.
Jeżeli czyta to jakiś Człowiek Dobrej Woli, który byłby skłonny przyjść z pomocą, to ja ze swej strony zapewniam, że pomoc takową z wdzięcznością przyjmę
Epicykloida 13/8
-
- Użytkownik
- Posty: 4
- Rejestracja: 3 wrz 2022, o 06:14
- Płeć: Mężczyzna
- wiek: 50
-
- Użytkownik
- Posty: 7917
- Rejestracja: 18 mar 2009, o 16:24
- Płeć: Mężczyzna
- Podziękował: 30 razy
- Pomógł: 1671 razy
Re: Epicykloida 13/8
Program w MATLAB "epicykloidy" z możliwością zmian promieni i okresów obiegu.
Program w wersji oryginalnej opracował Prof. Roche C. Guzman z Uniwersytetu Hofstra
Wywołanie programu:
Program w wersji oryginalnej opracował Prof. Roche C. Guzman z Uniwersytetu Hofstra
Kod: Zaznacz cały
function epicykloidy(Q,R,T1,r,tratio,Nc,Ntpc,ti)
clear; clc; close('all');
Q = input('Animacja?(0 = nie, 1 = tak): ');
R=5;% promień orbity pierwotnej
T1=1;% okres obiegu
r=2;% promień epicykloidy
tratio = 9.25; %stosunek
Nc = 10; % liczba cykli
Ntpc = 200; % liczba punktów na cykl
ti = 0; % czas początkowy
%% Obliczenia
% czas i liczba danych punktów
tf = Nc*T1; % czas końcowy
Nt = Nc*Ntpc; % ogólna liczba punktów
t = linspace(ti,tf,Nt); % wektor czasu orbity pierwotnej
omega1 = (2*pi)/T1; % prędkość kątowa
X = R*cos(omega1*t); % wektor
Y = R*sin(omega1*t); % vector
% epicykloida
T2 = T1/tratio; % okres
omega2 = (2*pi)/T2; % prędkość końcowa
x = R*cos(omega1*t)+r*cos(omega2*t); % wektor
y = R*sin(omega1*t)+r*sin(omega2*t); % wektor
%% Wyświetlenie wyników:
doAnimation = logical(Q);
if doAnimation
for k = 1:Nt
plot(X,Y); % orbita początkowa
hold('on');
plot(x(k),y(k),'or','markerfacecolor',[1 0 0]);
plot(x(1:k),y(1:k),'r-','markerfacecolor',[1 0 0]);
axis([-(R+r) (R+r) -(R+r) (R+r)]);
title('EPICYKLOIDY');
xlabel('x');
ylabel('y');
hold('off');
pause(0.1);
drawnow;
end
else
plot(X,Y);
hold('on');
plot(x,y,'r-','markerfacecolor',[1 0 0]);
axis([-(R+r) (R+r) -(R+r) (R+r)]);
title('EPICYKLOIDY');
xlabel('x');
ylabel('y');
hold('off');
end
Kod: Zaznacz cały
epicykloidy(1,5,1,2,9.25,10,200,0)
-
- Użytkownik
- Posty: 4
- Rejestracja: 3 wrz 2022, o 06:14
- Płeć: Mężczyzna
- wiek: 50
-
- Użytkownik
- Posty: 4
- Rejestracja: 3 wrz 2022, o 06:14
- Płeć: Mężczyzna
- wiek: 50
Re: Epicykloida 13/8
MATLAB jest niestety poza moim zasięgiem. Ale niewykluczone, że po drobnych modyfikacjach da się to uruchomić w darmowym SCILAB. Np. "%" pozamieniać na "//". Będę próbował, bo dopiero raczkuję w tym temacie. W każdym razie jestem odrobinę dalej, niż byłem, więc dzięki raz jeszcze. Jakiekolwiek sugestie w kwestii uruchamiania w SCILAB programów napisanych dla MATLAB - mile widziane
-
- Użytkownik
- Posty: 4
- Rejestracja: 3 wrz 2022, o 06:14
- Płeć: Mężczyzna
- wiek: 50
Re: Epicykloida 13/8
OK, działa pod OCTAVE plus GNUPLOT. Tylko - zdaje się - całe sterowanie grafiką i parametrami wyłącznie przez konsolę, więc już zaopatrzyłem się w samouczek i zaczynam zabawę z pętelkami. Temat można zamknąć, pomoc dotarła na czas