Ruch okręgu względem drugiego okręgu

Odpowiedz Nowy wątek
2015-01-28 18:32
0

Cześć!
Mam problem z rozwiązaniem zadania. Schematycznie przedstawiłem je na rysunku. Muszę zaznaczyć, że kod jest wykorzystywany do przekazywania zmiennych do programu obliczeniowego, więc nie ma to za zadanie działać samodzielnie ergo raczej nie można korzystać z bibliotek dodatkowych.
user image
Mam skończoną powierzchnię (tutaj 4x3 mm) muszę zadać taką trajektorię ruchu okręgu zielonego, aby poruszał się on po okręgu narysowanym linią przerywaną. Musi wykonać 35 obrotów na minutę (RPM) co jest równe ~3,6652 (rad/s). Dodatkowo, okrąg zielony nie jest zdefiniowany a liczony w locie (a raczej jego promień) - jest on odpowiedzialny za utrzymywanie "w ryzach" strumienia ciepła. Kod odpowiedzialny za wytyczanie geometrii okręgów:

(...)
float t1, omega, xcent=0.002, ycent=0.0015, rcirc=0.0007, rad,speed; /*omega - kąt; xcent, ycent - współrzędne środka dla koła dużego; rcirc - promień koła dużego; speed2 - prędkość w stopniach/s; rad - zmienna do przeliczania na radiany, speed - prędkość */
    x = tab[0]; /*koordynaty - w każdym kroku czasowym cała powierzchnia jest "przeczesywana" a wartości x, y, z są uaktualniane*/
    y = tab[1];
    z = tab[2];
    t1 = CURRENT_TIME;  /* aktualny czas w s*/

    omega=3.6652*t1;
    dx=xcent+cos(omega)*rcirc; /*dx i dy zwracają koordynaty(?) x i y*/
    dy=ycent+cos(omega)*rcirc;
    prom =sqrt(pow((x-dx),2)+pow((y-dy),2));
(...)
if (prom <= r) 
        {
        HS=10e12;
        }
    else
        {
        HS=0;
        }
    }

Problem jest z tym, że w programie docelowym zielony okrąg zamiast po trajektorii okręgu większego porusza się po jego średnicy :/ W kodzie jest zapewne jakiś niewielki błąd, którego nie potrafię wyłapać sam. Byłbym wdzięczny za jakieś podpowiedzi.

edytowany 2x, ostatnio: vekh, 2015-01-28 18:34

Pozostało 580 znaków

2015-01-28 18:59
3

Tak na pierwszy rzut oka to podejrzane jest że masz 2x funkcję cos().

Dlaczego podejrzane:
http://en.wikipedia.org/wiki/Euler%27s_identity


Szacuje się, że w Polsce brakuje 50 tys. programistów

Pozostało 580 znaków

2015-01-28 19:33

http://jsfiddle.net/0qzdp3nv/7/
w JS. Zmien sobie na C++


░█░█░█░█░█░█░█░█░█░█░█░
edytowany 2x, ostatnio: krwq, 2015-01-28 19:34

Pozostało 580 znaków

2015-01-28 21:55
0

vpiotr - faktycznie... Chociaż już sam nie wiem czy to kopiowanie czy tak było ;-)
krwq dzięki za źródło na pewno się przyda :)

Edit:
Działa! :D Dzięki wielkie za pomoc :) Uszanowanie :)

edytowany 1x, ostatnio: vekh, 2015-01-28 22:15

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0