|
@ -32,10 +32,6 @@ |
|
|
#define SIMULATION_STEPS 30 |
|
|
#define SIMULATION_STEPS 30 |
|
|
#define G 9.81 |
|
|
#define G 9.81 |
|
|
|
|
|
|
|
|
// Helpers for Angles Conversion |
|
|
|
|
|
#define RAD(x) x * PI / 180.0 |
|
|
|
|
|
#define DEG(x) x * 180.0 / PI |
|
|
|
|
|
|
|
|
|
|
|
#define scalar float |
|
|
#define scalar float |
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
//---------------------------------------------------------------------------------- |
|
@ -56,8 +52,8 @@ int main(void) |
|
|
|
|
|
|
|
|
// Simulation Paramters |
|
|
// Simulation Paramters |
|
|
//-------------------------------------------------------------------------------------- |
|
|
//-------------------------------------------------------------------------------------- |
|
|
scalar l1 = 15, m1 = 0.2, theta1 = RAD(170), w1 = 0; |
|
|
|
|
|
scalar l2 = 15, m2 = 0.1, theta2 = RAD(0), w2 = 0; |
|
|
|
|
|
|
|
|
scalar l1 = 15, m1 = 0.2, theta1 = DEG2RAD * 170, w1 = 0; |
|
|
|
|
|
scalar l2 = 15, m2 = 0.1, theta2 = DEG2RAD * 0, w2 = 0; |
|
|
scalar lengthScaler = 0.1; |
|
|
scalar lengthScaler = 0.1; |
|
|
scalar totalM = m1 + m2; |
|
|
scalar totalM = m1 + m2; |
|
|
|
|
|
|
|
@ -153,11 +149,11 @@ int main(void) |
|
|
|
|
|
|
|
|
// Draw Double Pendulum |
|
|
// Draw Double Pendulum |
|
|
DrawRectanglePro((Rectangle){ CENTER_X, CENTER_Y, 10 * l1, lineThick }, |
|
|
DrawRectanglePro((Rectangle){ CENTER_X, CENTER_Y, 10 * l1, lineThick }, |
|
|
(Vector2){0, lineThick * 0.5}, 90 - DEG(theta1), RAYWHITE); |
|
|
|
|
|
|
|
|
(Vector2){0, lineThick * 0.5}, 90 - RAD2DEG * theta1, RAYWHITE); |
|
|
|
|
|
|
|
|
Vector2 endpoint1 = CalculatePendulumEndPoint(l1, theta1); |
|
|
Vector2 endpoint1 = CalculatePendulumEndPoint(l1, theta1); |
|
|
DrawRectanglePro((Rectangle){ CENTER_X + endpoint1.x, CENTER_Y + endpoint1.y, 10 * l2, lineThick }, |
|
|
DrawRectanglePro((Rectangle){ CENTER_X + endpoint1.x, CENTER_Y + endpoint1.y, 10 * l2, lineThick }, |
|
|
(Vector2){0, lineThick * 0.5}, 90 - DEG(theta2), RAYWHITE); |
|
|
|
|
|
|
|
|
(Vector2){0, lineThick * 0.5}, 90 - RAD2DEG * theta2, RAYWHITE); |
|
|
|
|
|
|
|
|
EndDrawing(); |
|
|
EndDrawing(); |
|
|
//---------------------------------------------------------------------------------- |
|
|
//---------------------------------------------------------------------------------- |
|
|