У меня есть проблема относительно моего OpenGL кода, я пытаюсь использоватьC++ OpenGL Glutsphere вопрос расположения
glTranslatef
просто обновить свою glutsolidsphere местоположение, но все, что я пытаюсь изменить .. это сделать все остальные ненужные объекты перемещаются и к краю экрана экрана, но получается так: «the image» .it переместить весь мой другой объект .. что не так с моим кодом?
/* * hello.c * This is a simple,
introductory OpenGL program. */
#include <GL/glut.h>
void display(void)
{
/* clear all pixels */
glClear (GL_COLOR_BUFFER_BIT);
/* draw white polygon (rectangle) with corners at
*(0.25, 0.25, 0.0) and (0.75, 0.75, 0.0) */
glColor3f (1.0, 0.0, 0.0);
glBegin(GL_TRIANGLES);
glVertex3f (0.50, 0.70, 0.0);
glVertex3f (0.40, 0.60, 0.0);
glVertex3f (0.60, 0.60, 0.0);
glEnd();
glFlush();
glColor3f (0.0, 1.0, 0.0);
glBegin(GL_POLYGON);
glVertex3f (0.40, 0.20, 0.0);
glVertex3f (0.60, 0.20, 0.0);
glVertex3f (0.60, 0.40, 0.0);
glVertex3f (0.40, 0.40, 0.0);
glEnd();
glFlush();
glColor3f (0.0, 1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f (0.30, 0.30, 0.0);
glVertex3f (0.32, 0.30, 0.0);
glVertex3f (0.40, 0.38, 0.0);
glVertex3f (0.40, 0.40, 0.0);
glVertex3f (0.30, 0.40, 0.0);
glEnd();
glFlush();
glColor3f (0.0, 1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f (0.60, 0.38, 0.0);
glVertex3f (0.68, 0.30, 0.0);
glVertex3f (0.70, 0.30, 0.0);
glVertex3f (0.70, 0.40, 0.0);
glVertex3f (0.60, 0.40, 0.0);
glEnd();
glFlush();
glColor3f (0.0, 0.0, 1.0);
glBegin(GL_LINE_STRIP);
glVertex3f (0.25, 0.24, 0.0);
glVertex3f (0.30, 0.29, 0.0);
glVertex3f (0.35, 0.24, 0.0);
glVertex3f (0.40, 0.29, 0.0);
glVertex3f (0.45, 0.24, 0.0);
glVertex3f (0.50, 0.29, 0.0);
glVertex3f (0.55, 0.24, 0.0);
glVertex3f (0.60, 0.29, 0.0);
glVertex3f (0.65, 0.24, 0.0);
glVertex3f (0.70, 0.29, 0.0);
glVertex3f (0.75, 0.24, 0.0);
glEnd();
glFlush();
glColor3f (0.0, 1.0, 1.0);
glBegin(GL_LINE_STRIP);
glVertex3f (0.25, 0.19, 0.0);
glVertex3f (0.30, 0.24, 0.0);
glVertex3f (0.35, 0.19, 0.0);
glVertex3f (0.40, 0.24, 0.0);
glVertex3f (0.45, 0.19, 0.0);
glVertex3f (0.50, 0.24, 0.0);
glVertex3f (0.55, 0.19, 0.0);
glVertex3f (0.60, 0.24, 0.0);
glVertex3f (0.65, 0.19, 0.0);
glVertex3f (0.70, 0.24, 0.0);
glVertex3f (0.75, 0.19, 0.0);
glEnd();
glFlush();
glColor3f (0.0, 0.0, 1.0);
glBegin(GL_LINE_STRIP);
glVertex3f (0.25, 0.14, 0.0);
glVertex3f (0.30, 0.19, 0.0);
glVertex3f (0.35, 0.14, 0.0);
glVertex3f (0.40, 0.19, 0.0);
glVertex3f (0.45, 0.14, 0.0);
glVertex3f (0.50, 0.19, 0.0);
glVertex3f (0.55, 0.14, 0.0);
glVertex3f (0.60, 0.19, 0.0);
glVertex3f (0.65, 0.14, 0.0);
glVertex3f (0.70, 0.19, 0.0);
glVertex3f (0.75, 0.14, 0.0);
glEnd();
glFlush();
glColor3f (1.0, 1.0, 0.0);
glTranslatef(0.20,0.27,0.0);
glutSolidSphere(0.06, 20, 20);
glFlush();
/* don't wait!
* start processing buffered OpenGL routines */
}
void init (void)
{
/* select clearing color */
glClearColor (1.0, 1.0, 1.0, 1.0);
/* initialize viewing values */
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
/*
* Declare initial window size, position, and display mode
* (single buffer and RGBA). Open window with "hello"
* in its title bar. Call initialization routines.
* Register callback function to display graphics.
* Enter main loop and process events. */
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (900, 600);
glutInitWindowPosition (50, 100);
glutCreateWindow ("hello");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
/* ANSI C requires main to return int. */
}
ой теперь я понимаю ... спасибо за вашу помощь ... –