Ich versuche ein Spiel mit Echtzeitsimulationen von Zahnrädern zu machen. Es gibt ein großes Zahnrad mit einem kleineren Zahnrad.
Ich habe es geschafft, Zahnräder mit unterschiedlichen Durchmessern, aber gleich großen Zähnen zu zeichnen, aber wenn ich versuche, das kleinere innerhalb des größeren zu bewegen, ist die Bewegung merkwürdig.
Siehe das animierte GIF:
Das größte Zahnrad befindet sich in der Mitte C1 und das kleine in der Mitte C2. Ich berechne die C2-Position folgendermaßen:
C2.x = C1.x + C1_RADIUS-C2_RADIUS) * cos(t);
C2.y = C1.y - C1_RADIUS-C2_RADIUS) * sin(t);
für t geht das in n Schritten von 0 nach TWO_PI.
Ich wende als Drehung den Winkel t an, aber vielleicht ist es falsch und ich muss eine andere Drehung berechnen, um eine perfekte Verbindung zu erhalten.
BEARBEITEN:
Ich benutze Bogenmaß für Rotationen und ich denke, das ist in Ordnung.
Mein Hauptproblem ist, dass ich wie in diesem Beispiel eine perfekte Verbindung zwischen den Zähnen erreichen möchte . Meine Zähne überlappen sich auf seltsame Weise.
BEARBEITEN
Ein funktionierendes Beispiel finden Sie hier: http://www.openprocessing.org/sketch/83665