#opengl
#opengl
Вопрос:
Как следует из названия, я нарисовал остальную часть стола, просто возникли проблемы с рисованием карманов..
#pragma region Table Drawing Code
void drawTable()
{
glBegin(GL_QUADS); // RIGHT
glNormal3f(0,0,1);
glColor3d(0.5,0.35,0.05);
glVertex3f(m_TableX, 0.0f, m_TableWidth); //bottom left
glVertex3f(m_TableLength, 0.0f, m_TableWidth);//bottom right
glVertex3f(m_TableLength, 0.0f, m_TableWidth);//top right
glVertex3f(m_TableX, 0.0f, m_TableWidth); //top left
glEnd();
glBegin(GL_QUADS); //BACK
glNormal3f(1,0,0);
glColor3d(0.5,0.35,0.05);
glVertex3f(m_TableLength, 0.0f, m_TableWidth);
glVertex3f(m_TableLength, 0.0f, m_TableZ);
glVertex3f(m_TableLength, 0.0f, m_TableZ);
glVertex3f(m_TableLength, 0.0f, m_TableWidth);
glEnd();
glBegin(GL_QUADS); //FRONT
glNormal3f(-1,0,0);
glColor3d(0.5,0.35,0.05);
glVertex3f(m_TableX, 0.0f, m_TableZ);
glVertex3f(m_TableX, 0.0f, m_TableWidth);
glVertex3f(m_TableX, 0.0f, m_TableWidth);
glVertex3f(m_TableX, 0.0f, m_TableZ);
glEnd();
glBegin(GL_QUADS); //lEFT
glNormal3f(0,0,-1);
glColor3d(0.5,0.35,0.05);
glVertex3f(m_TableX, 0.0f, m_TableZ);
glVertex3f(m_TableLength, 0.0f, m_TableZ);
glVertex3f(m_TableX, 0.0f, m_TableZ);
glVertex3f(m_TableLength, 0.0f, m_TableZ);
glEnd();
glBegin(GL_QUADS); //BOTTOM
glNormal3f(0,-1,0);
glColor3d(0.5,0.35,0.05);
glVertex3f(m_TableX, -0.001f, m_TableWidth);
glVertex3f(m_TableLength, -0.001f, m_TableWidth);
glVertex3f(m_TableLength, -0.001f, m_TableZ);
glVertex3f(m_TableX, -0.001f, m_TableZ);
glEnd();
}
#pragma endregion
Я новичок в OpenGL, поэтому я не уверен, что использовать, чтобы получить кривую, которая соединена с подушками и отверстием в столе для падения мяча.
Комментарии:
1. Скриншоты того, что у вас есть, чего вы ожидаете и т.д.
2. flickr.com/photos/61783705@N06/5619348261/in/photostream Я новый пользователь, поэтому не могу опубликовать скриншот. Я хочу иметь возможность получить кривую, в которой пробелы в таблице
Ответ №1:
попробуйте использовать gluPartialDisk, чтобы нарисовать форму «C» для угла кармана, например
аннулировать диск () {
gluPartialDisk(gluNewQuadric(),1, 1.2, 10, 1, 0.0, -180); }
затем объявите disk(); в вашем методе рисования