galaxy список ошибок в конце,
#include
#include
#include
#include // системное время
#include // математические операторы
#include // работа со строками
#include "glut.h" // Заголовочник GLUT
#define PI atan(1)*2 // pi constant
GLint Width = 800, Height = 800;// Начальные размеры окна
int R0 = 100; // Начальное положение маятника
double fi = 1;
int R = 300; // точка равновесия маятника
double fc = 0.0005; // коэффициент сопративления
double m = 0.1; // масса
double k = 0.1; // коэффициент упругости
double afi = 0, vfi = 0; // ускорение и скорость
double ar = 0, vr = 0;
bool state = false; // флаг движения тела (true - движется, false - стоит)
int flag = 0; // выбор что изменять (1-масса 2-упругость 3-положение)
int delay = 10; // Задержка в МС между кадрами
long time0 = 0; // Отметка системного времени
int x = (R - R0) * cos(fi); // положение маятника по декарту
int y = (R - R0) * sin(fi);
void Mouse(int button, int status, int cx, int cy) {
if (cy > 1.4 * Width / 10 || flag == 3) { // Если ниже ползунков
state = status == GLUT_DOWN ? false : state; // Нажата лкм - остановить движение
state = status == GLUT_UP ? true : state; // Отпущена лкм - запустить движение
}
flag = status == GLUT_UP ? 0 : flag; // Отпустили лкм? Прекратили изменять
}
void Motion(int cx, int cy) {
if ((cy > 1.4 * Height / 10 && flag == 0) || flag == 3) { //если начали движение в районе маятника
flag = 3;
cx -= Width / 2;
cy -= 2 * Height / 10;
cx = cx == 0 ? 1 : cx; // Защита от деления на 0
R0 = sqrt(cx * cx + cy * cy) - R;
fi = -atan2(cy, cx);
vfi = 0; vr = 0; afi = 0; ar = 0;
}
if (cy > 0 && cy < 0.7 * Height / 10 && flag == 0) { //если начали двигать верхний ползунок
flag = 1; // ползунок - масса
if (cx > Width / 10 && cx < 9 * Width / 10) {
m = E(cx);
}
}
if (cy > 0.7 * Height / 10 && cy < 1.4 * Height / 10 && flag == 0) { //если начали двигать нижний ползунок
flag = 2; // ползунок - упругость
if (cx > Width / 10 && cx < 9 * Width / 10) {
k = E(cx);
}
}
if (flag != 0) { // Движение ползунков - фикс бага
if (cx > Width / 10 && cx < 9 * Width / 10) {
if (flag == 1)
m = E(cx);
if (flag == 2)
k = E(cx);
}
}
}
void main(int argc, char* argv[]) {
time0 = clock(); // Системное время в МС
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowSize(Width, Height); // Размер окна
glutCreateWindow("maitnik");
glutDisplayFunc(Display); // Функция отображения
glutReshapeFunc(Reshape); // Функция смены размерности окна
glutKeyboardFunc(Keyboard); // Функция обраболтки клавиатуры
glutIdleFunc(Idle); // Функцция простоя IDLE
glutMouseFunc(Mouse); // Функцция обработки мыши
glutMotionFunc(Motion); // Функцция обработки движения мыши
glutMainLoop(); // Main библиотеки
}
Список ошибок
E0028 выражение должно иметь константное значение 30
E0028 выражение должно иметь константное значение 30
E0028 выражение должно иметь константное значение 30
E0028 выражение должно иметь константное значение 30
E0059 недопустимый вызов функции в константном выражении 30
E0028 выражение должно иметь константное значение 31
E0028 выражение должно иметь константное значение 31
E0028 выражение должно иметь константное значение 31
E0028 выражение должно иметь константное значение 31
E0059 недопустимый вызов функции в константном выражении 31
E0167 аргумент типа "double" несовместим с параметром типа "const char *const" 92
E0167 аргумент типа "double" несовместим с параметром типа "const char *const" 94
C2440 функция: невозможно преобразовать "double" в "const char *const " 92
C2440 функция: невозможно преобразовать "double" в "const char *const " 94
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.