// рисуем одну ось единичного переключателя - вытянутую сферу
glPushMatrixO:
glScaled(0.2.0.2.1.0):
g 1 utSol1dSphereC1.15.15):
glPopMatrixO:
glPushMatrixO:
glTranslated(0.0.1.2): // ball on one end // шарик на одном конце
g!utSolidSphere(0.2.15.15):
glTranslated(0.0. -2.4):
glutSolidSphere(Q.2.15.15)://ball on the other end gl PopMatrixO:
}
5.6. Рисование трехмерных сцен с применением OpenGL
крышки на столбы забора бетонные своими руками.
//«««««<«««« jack »»»»»»»»»»
void jackO
{
// draw a unit jack out of spheroids // рисуем единичный переключатель из сфероидов glPushMatrixC):
jackPartO:
glRotated(90.0. 0. 1. 0): jackPartO:
glRotatedOO.O, 1.0.0); jackPartO: glPopMatrixO;
}
//«««<«««««««« table »»»»»»»»»»
void table(double topWid. double topThick. double legThick. double legLen)
{
// draw the table - a top and four legs // рисуем стол - столешницу и четыре ножки glPushMatrixC);
// draw the table top // рисуем столешницу
glTranslatedCO. legLen. 0):
glScaledCtopwid. topThick. topWid):
glutSolidCube(l.O):
glPopMatrixO:
double dist = 0.95 * topWid/2.0 - legThick / 2.0:
glPushMatrixC):
glTranslatedCdist. 0. dist):
tableLegdegThick. legLen);
glTranslatedCO. 0. -2 * dist);
tableLegdegThick, legLen);
glTranslated(-2 * dist. 0. 2*dist):
tableLegdegThick. legLen):
glTranslatedCO. 0. -2*dist):
tableLegdegThick. legLen);
glPopMatrixO;
}
//«««««««««<« displaySolid »»»»»»»»»»»
void displaySolid(void)
{
// set properties of the surface material // задаем свойства материала поверхности
GLfloat mat_ambient[] = {0.7f,0.7f,0.7f,1.0f}:
// gray // серый
GLfloat mat_diffuse[] = {0.6f.0.6f,0.6f.l.0f}:
GLfloat mat_specular[] = {1.Of.1.Of.1.Of.1.Of}:
GLfloat mat_shininess[] = {50.Of};
glMateri alfv(GLJRONT.GL_AMBIENT.mat_ambi ent):