Итак, я пишу фрагмент кода для перевода точки x и y, которые являются элементами структуры, в направлении x, направлении y и вращением вокруг начала координат на основе пользовательских вводов для x, y и угла тета соответственно. Как передать структуру через функцию поворота (без использования указателей, поскольку мы еще не рассмотрели это), спасибо. код ниже, спасибо.
#include <stdio.h>
#include <math.h>
typedef struct
{
float x;
float y;
}coordinate;
float xNew(float x, float x2);
float yNew(float y, float y2);
coordinate Rotate( coordinate pointA, float angle);
void main()
{
coordinate pointA;
float x,y,x2,y2, theta;
coordinate newpoints;
printf("Enter coordinates>");
scanf("%f%f", &pointA.x, &pointA.y);
printf("Enter x offset>");
scanf("%f", &x2);
x = xNew(pointA.x, x2);
printf("Enter y offset>");
scanf("%f", &y2);
y = yNew(pointA.y, y2);
printf("Enter rotation value in degrees");
scanf("%f", &theta);
newpoints = Rotate(pointA, theta);
printf("offsets were %f%f\n",x2,y2 );
printf("new coords are%f%f\n", x,y);
pointA.x = x;
pointA.y = y;
printf("struc coords are%f%f", pointA.x, pointA.y);
return;
}
float xNew(float x, float x2)
{
float xpos;
xpos = x+x2;
return(xpos);
}
float yNew(float y, float y2)
{
float ypos;
ypos = y + y2;
return(ypos);
coordinate Rotate( pointA, float angle)
{
coordinate pointA;
float theta;
pointA.x = cos(theta)*pointA.x - sin(theta)*pointA.y;
pointA.y = sin(theta)*pointA.x + cos(theta)*pointA.y;
return(pointA);
}
}
РЕДАКТИРОВАТЬ: опубликовал обновленный код, получена только одна ошибка
ошибка: ожидается ')' перед координатой 'float' Повернуть (pointA, float angle) я не знаю, что происходит