Advertisement
Sathvikks8

teapot

Jul 27th, 2022
854
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.21 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<GL/glut.h>
  3. void tableLeg(double thick, double len) {
  4.     glPushMatrix();
  5.     glTranslated(0, len/2, 0);
  6.     glScaled(thick, len, thick);
  7.     glutSolidCube(1.0);
  8.     glPopMatrix();
  9. }
  10. void table(double topWid, double topThick, double legThick, double legLen) {
  11.     glPushMatrix();
  12.     glTranslated(0, legLen, 0);
  13.     glScaled(topWid, topThick, topWid);
  14.     glutSolidCube(1.0);
  15.     glPopMatrix();
  16.     double dist=0.95*topWid/2.0-legThick/2.0;
  17.     glPushMatrix();
  18.     glTranslated(dist, 0, dist);
  19.     tableLeg(legThick, legLen);
  20.     glTranslated(0.0, 0.0, -2*dist);
  21.     tableLeg(legThick, legLen);
  22.     glTranslated(-2*dist, 0, 2*dist);
  23.     tableLeg(legThick, legLen);
  24.     glTranslated(0.0, 0.0, -2*dist);
  25.     tableLeg(legThick, legLen);
  26.     glPopMatrix();
  27. }
  28. void displaySolid(void) {
  29.     GLfloat mat_ambient[] = {0.7f, 0.7f, 0.7f, 1.0f};
  30.     GLfloat mat_diffuse[] = {0.5f, 0.5f, 0.5f, 1.0f};
  31.     GLfloat mat_specular[] = {1.0f, 1.0f, 1.0f, 1.0f};
  32.     GLfloat mat_shininess[] = {50.0f};
  33.     glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
  34.     glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  35.     glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
  36.     glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
  37.     GLfloat lightIntensity[] = {0.7f, 0.7f, 0.7f, 0.7f};
  38.     GLfloat lightPosition[] = {2.0f, 6.0f, 3.0f, 0.0f};
  39.     glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);
  40.     glLightfv(GL_LIGHT0, GL_DIFFUSE, lightIntensity);
  41.     glMatrixMode(GL_PROJECTION);;
  42.     glLoadIdentity();
  43.     glOrtho(-2.0, 2.0, -1.0, 1.0, 0.1, 100);
  44.     glMatrixMode(GL_MODELVIEW);
  45.     glLoadIdentity();
  46.     gluLookAt(2.3, 1.3, 2.0, 0.0, 0.25, 0.0, 0.0, 1.0, 0.0);
  47.     glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
  48.     glPushMatrix();
  49.     glTranslated(0.5, 0.38, 0.5);
  50.     glRotated(30, 0, 1, 0);
  51.     glutSolidTeapot(0.08);
  52.     glPopMatrix();
  53.     glPushMatrix();
  54.     glTranslated(0.4, 0, 0.4);
  55.     table(0.6, 0.02, 0.02, 0.3);
  56.     glPopMatrix();
  57.     glFlush();
  58. }
  59. int main(int argc, char* argv[]) {
  60.     glutInit(&argc, argv);
  61.     glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);
  62.     glutInitWindowSize(500, 500);
  63.     glutInitWindowPosition(100, 100);
  64.     glutCreateWindow("Lab 6");
  65.     glutDisplayFunc(displaySolid);
  66.     glEnable(GL_LIGHTING);
  67.     glEnable(GL_LIGHT0);
  68.     glShadeModel(GL_SMOOTH);
  69.     glEnable(GL_DEPTH_TEST);
  70.     glEnable(GL_NORMALIZE);
  71.     glClearColor(1, 1, 1, 0.0);
  72.     glViewport(0, 0, 640, 480);
  73.     glutMainLoop();
  74.     return 0;
  75. }
  76.  
  77.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement