Hello, I have data in a .csv describing a car journey. The car starts at the position (0,0)-> (x,y). It moves only in 2 dimensions.
The .csv file contains two values separated by commas (,). The values include:
-The acceleration of the car in the direction it is currently pointing.
-The rotation of the car in which it is currently pointing.
The car always rotates at the beginning, then it accelerates for 1 second, stops rotates again and accelerates again. and so on...
Now I have to calculate the maximum distance from the start position and the total distance covered. However, I get in C when I run the script slightly different values than should finally come out.
Can someone take a look at my loop or algorithm? Do I have a mistake somewhere how I calculate the covered distance?
Code:
while ((token = strtok_r(save, "\n", &save)))
{
char* token1;
char* save1 = token;
double acceleration = atof(strtok_r(save1, ",", &save1));
double rotation = atof(strtok_r(save1, ",", &save1));
direction += rotation;
double ax = acceleration * cos(direction);
double ay = acceleration * sin(direction);
double vx = v0x + ax;
double vy = v0y + ay;
double x = v0x + (ax/2) + x0;
double y = v0y + (ay/2) + y0;
fprintf(file, "%f,%f\n", x, y, direction);
double distance = sqrt(x*x + y*y);
if(distance > max_distance) max_distance = distance;
total_distance += sqrt((x-x0)*(x-x0) + (y-y0)*(y-y0));
if(sqrt(vx*vx + vy*vy) > max_speed) max_speed = sqrt(vx*vx + vy*vy);
v0x = vx;
v0y = vy;
x0 = x;
y0 = y;
}