Я работаю над проектом, который мой домашнее задание. Мне нужно вращать машину (не совсем, но, как машина, я думаю, это не важно). Моя машина 2д. Я создаю его с помощью glReactf (); функция. Из-за этого я могу создать прямоугольник с этой функцией попиксельно. Как;
// Create a rectangle (0,0) to (30,30) :) Like a square, yeap :) I use it.
// Because I am working on a lot of rectangles and you know, squares are rectangles in math :)
glRectf(0, 0, 30, 30);
Но у меня есть код. Это работает, но это 3d. Я не могу превратить это 2d. Вы можете помочь мне? Это не важно, я работаю над 2d. Хотя я говорю «я не могу включить 2d», я имею в виду, что я не получил алгоритм и лог c для этого кода. Это код для четырехугольников, и я могу повернуть его с помощью функции rotatef ();
#include <stdio.h>
#include <GL/glut.h>
double rotate_y = 0;
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef(rotate_y, 0.0, 1.0, 0.0);
glBegin(GL_POLYGON);
glColor3f(1.0, 1.0, 1.0);
glVertex3f(0.5, -0.5, 0.5);
glColor3f(1.0, 1.0, 0.0);
glVertex3f(0.5, 0.5, 0.5);
glColor3f(1.0, 0.0, 1.0);
glVertex3f(-0.5, 0.5, 0.5);
glColor3f(1.0, 1.0, 1.0);
glVertex3f(-0.5, -0.5, 0.5);
glEnd();
glFlush();
glutSwapBuffers();
}
void keyboard(int key, int x, int y) {
if (key == GLUT_KEY_RIGHT) {rotate_y += 45;}
else if (key == GLUT_KEY_LEFT) {rotate_y -= 45;}
glutPostRedisplay();
}
int main(int argc, char* argv[]) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowPosition(0, 0);
glutInitWindowSize(800, 800);
glutCreateWindow("Rotating Test");
glutDisplayFunc(display);
glutSpecialFunc(keyboard);
glutMainLoop();
return 0;
}
Мне нужна машина (например, квадрат 30x30 px в 2d), и мне нужно повернуть ее на 180 градусов по оси Y. Я хочу создать его, как написать мой первый код.