shohan11421

project_test

Mar 20th, 2021 (edited)
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.24 KB | None | 0 0
  1.  
  2. //press 1 boat 1 move and press2 boat 1 stop
  3. //press 3 boat 2 move and press 4 boat 2 stop
  4. //press C cloud start and press E  cloud stop
  5. //press s sun start and press n sun stop
  6. #include <stdio.h>
  7. #include <iostream>
  8. #include <GL/glut.h>
  9. #include <math.h>
  10.  
  11.  
  12.  
  13. int boatStatus = 0;
  14. int boatStatus1 = 0;
  15.  
  16. int meghStatus = 0;
  17. int sunStatus =  0;
  18.  
  19.  
  20. float boatX = 0;
  21. float boatY = 0;
  22.  
  23. float boatX1 = 0;
  24. float boatY1 = 0;
  25.  
  26. float sunX = 0;
  27. float sunY = 0;
  28.  
  29. float meghX = 0;
  30. float meghY = 0;
  31.  
  32.  
  33. float move, angle;
  34.  
  35.         void DrawCircle(float cx, float cy, float r, int num_segments){
  36.  
  37.          glBegin(GL_TRIANGLE_FAN);
  38.         for (int i = 0; i < num_segments; i++)
  39.         {
  40.         float theta = 2.0f * 3.1415926f * float(i) / float(num_segments);//get the current angle
  41.  
  42.         float x = r * cosf(theta);//calculate the x component
  43.         float y = r * sinf(theta);//calculate the y component
  44.  
  45.         glVertex2f(x + cx, y + cy);//output vertex
  46.  
  47.         }
  48.         glEnd();
  49.     }
  50.  
  51.     void drawSun(int x)
  52.     {
  53.         glColor3f(3.0, 1.0, 0.5);
  54.         DrawCircle(800, 1000, 70, 1000);
  55.     }
  56.  
  57.  
  58.  
  59.     void hills(){
  60.  
  61.         glColor3f(0.4, 0.4, 0.2);
  62.         DrawCircle(200, 600, 500, 2000); //1
  63.         glColor3f(0.4, 0.4, 0.2);
  64.         DrawCircle(800,600,500, 2000);//2
  65.         glColor3f(0.4, 0.4, 0.2);
  66.         DrawCircle(1400, 600, 500, 2000);//3
  67.         glColor3f(0.4, 0.4, 0.2);
  68.         DrawCircle(2000, 600, 500, 2000);//3
  69.  
  70.     }
  71.     void tree()
  72.     {
  73.  
  74.  
  75.     glBegin(GL_POLYGON); //Tree
  76.     glColor3f(.6, 0.3, 0.1);
  77.     glVertex2i(395, 50);
  78.     glVertex2i(430, 50);
  79.     glVertex2i(430, 250);
  80.     glVertex2i(395, 250);
  81.  
  82.     glVertex2i(345, 30);
  83.     glVertex2i(480, 30);
  84.     glVertex2i(430, 50);
  85.     glVertex2i(395, 50);
  86.  
  87.  
  88.  
  89.     glVertex2i(395, 250);
  90.     glVertex2i(430, 250);
  91.     glVertex2i(460, 360);
  92.  
  93.     glVertex2i(430, 360);
  94.     glVertex2i(390, 290);
  95.     glVertex2i(360, 360);
  96.     glVertex2i(320, 360);
  97.     glEnd();
  98.  
  99.  
  100.  
  101.  
  102.  
  103.     glColor3f(0.0, 0.6, 0.1);
  104.     DrawCircle(370, 370, 60, 2000); //4
  105.     glColor3f(0.0, 0.6, 0.1);
  106.     DrawCircle(450,480,80, 2000);//2
  107.     glColor3f(0.0, 0.6, 0.1);
  108.     DrawCircle(320, 460, 80, 2000);//1
  109.     glColor3f(0.0, 0.6, 0.1);
  110.         DrawCircle(450, 380, 70, 1000);//3
  111.     glColor3f(0.0, 0.6, 0.1);
  112.     DrawCircle(370, 550,80, 1000);//5
  113.  
  114.     }
  115.     void megh(int x){
  116.  
  117.  
  118.  
  119.  
  120.     glColor3f(1.0, 1.0, 1.0);
  121.     DrawCircle(100, 1300, 60, 2000);//1
  122.     DrawCircle(200,1300, 80, 2000);//2
  123.     DrawCircle(300, 1300, 55, 2000);//3
  124.  
  125.  
  126.     DrawCircle(700, 1300, 60, 2000);//1
  127.     DrawCircle(800,1300, 80, 2000);//2
  128.     DrawCircle(900, 1300, 55, 2000);//3
  129.  
  130.     DrawCircle(1100, 1300, 60, 2000);//1
  131.     DrawCircle(1200,1300, 80, 2000);//2
  132.     DrawCircle(1300, 1300, 55, 2000);//3
  133.  
  134.     DrawCircle(1700, 1300, 60, 2000);//1
  135.     DrawCircle(1800,1300, 80, 2000);//2
  136.     DrawCircle(1900, 1300, 55, 2000);//3
  137.  
  138.  
  139.     }
  140.  
  141.     void movemegh()
  142.  
  143.     {
  144.         if (meghStatus == 1)
  145.         {
  146.             meghX +=.5;
  147.         }
  148.         if (meghX>2000)
  149.         {
  150.             meghX = -200;
  151.         }
  152.         glPushMatrix();
  153.         glTranslatef(meghX, meghY, 0);
  154.         megh(1);
  155.         glPopMatrix();
  156.  
  157.  
  158.     }
  159.  
  160.     void moveSun()
  161.     {
  162.  
  163.  
  164.          if(sunStatus == 1)
  165.           {
  166.                  if (sunY>=350)
  167.                  sunY=350;
  168.                  else
  169.                     sunY += .5;
  170.           }
  171.  
  172.               glPushMatrix();
  173.  
  174.              glTranslatef(sunX, sunY, 0);
  175.  
  176.              drawSun(1);
  177.              glPopMatrix();
  178.  
  179.  
  180.     }
  181.  
  182.     void sky(){
  183.  
  184.     glBegin(GL_POLYGON); //Sky
  185.     glColor3f(0.4, 0.5, 1.0);
  186.     glVertex2i(0, 1500);
  187.     glVertex2i(2000, 1500);
  188.     glColor3f(0.7, 0.7, 1.0);
  189.     glVertex2i(2000, 0);
  190.     glVertex2i(0, 0);
  191.     glEnd();
  192.  
  193.  
  194.  
  195.     }
  196.     void river(){
  197.  
  198.     glBegin(GL_POLYGON); // River
  199.     glColor3f(0.2, 0.3, 1.1);
  200.     glVertex2i(0, 500);
  201.     glVertex2i(550, 300);
  202.     glVertex2i(2000, 200);
  203.     glVertex2i(2000, 950);
  204.     glVertex2i(0, 950);
  205.     glEnd();
  206.  
  207.  
  208.     }
  209.     void house(){
  210.  
  211.     glBegin(GL_POLYGON); //Middle ground
  212.     glColor3f(0.0, 0.8, 0.0);
  213.     glVertex2i(0, 0);
  214.     glVertex2i(2000,0);
  215.     glVertex2i(2000, 200);
  216.     glVertex2i(1000,0);
  217.     glColor3f(0.1, 0.9, 0.1);
  218.     glVertex2i(0,0);
  219.     glVertex2i(2000, 200);
  220.     glVertex2i(550, 300);
  221.     glVertex2i(0, 500);
  222.     glEnd();
  223.  
  224.  
  225.     glBegin(GL_POLYGON); //House rec
  226.     glColor3f(0.5, 0.2, 0.1);
  227.     glVertex2i(100, 100);
  228.     glVertex2i(350, 100);
  229.     glVertex2i(350, 250);
  230.     glVertex2i(100, 250);
  231.     glEnd();
  232.  
  233.  
  234.  
  235.  
  236.     glBegin(GL_POLYGON); //House rec border
  237.     glColor3f(1.0, 0.3, 0.2);
  238.     glVertex2i(90, 80);
  239.     glVertex2i(355, 80);
  240.     glVertex2i(350, 100);
  241.     glVertex2i(100, 100);
  242.     glEnd();
  243.  
  244.     glBegin(GL_POLYGON); //House door
  245.     glColor3f(0.2, 0.2, 0.1);
  246.     glVertex2i(200, 100);
  247.     glVertex2i(250, 100);
  248.     glVertex2i(250, 200);
  249.     glVertex2i(200, 200);
  250.     glEnd();
  251.  
  252.  
  253.     glBegin(GL_POLYGON); //House tin
  254.     glColor3f(0.2, 0.2, 0.1);
  255.     glVertex2i(100, 250);
  256.     glVertex2i(350, 250);
  257.     glVertex2i(300, 400);
  258.     glVertex2i(50, 400);
  259.     glEnd();
  260.  
  261.  
  262.  
  263.     glBegin(GL_POLYGON); //House tri
  264.     glColor3f(0.6, 0.3, 0.1);
  265.     glVertex2i(25, 275);
  266.     glVertex2i(100, 250);
  267.     glVertex2i(50, 400);
  268.  
  269.     glEnd();
  270.  
  271.  
  272.  
  273.  
  274.     glBegin(GL_POLYGON); //House tri down rec
  275.     glColor3f(0.9, 0.2, 0.16);
  276.     glVertex2i(25, 150);
  277.     glVertex2i(100, 100);
  278.     glVertex2i(100, 250);
  279.     glVertex2i(25, 275);
  280.     glEnd();
  281.  
  282.  
  283.  
  284.  
  285.     glBegin(GL_POLYGON); //House tri down rec bor
  286.     glColor3f(0.3, 0.3, 0.1);
  287.     glVertex2i(20, 130);
  288.     glVertex2i(90,80 );
  289.     glVertex2i(100, 100);
  290.     glVertex2i(25, 150);
  291.     glEnd();
  292.  
  293.  
  294.  
  295.     glBegin(GL_POLYGON); //House tri down rec ven
  296.     glColor3f(0.2, 0.2, 0.1);
  297.     glVertex2i(50, 210);
  298.     glVertex2i(75, 200);
  299.     glVertex2i(75, 240);
  300.     glVertex2i(50, 250);
  301.     glEnd();
  302.  
  303.  
  304.  
  305.  
  306.     glBegin(GL_POLYGON); //House vender
  307.     glColor3f(0.2, 0.2, 0.1);
  308.     glVertex2i(125, 200);
  309.     glVertex2i(150, 200);
  310.     glVertex2i(150, 240);
  311.     glVertex2i(125, 240);
  312.     glEnd();
  313.  
  314.     glBegin(GL_POLYGON); //House vender
  315.     glColor3f(0.2, 0.2, 0.1);
  316.     glVertex2i(300, 200);
  317.     glVertex2i(325, 200);
  318.     glVertex2i(325, 240);
  319.     glVertex2i(300, 240);
  320.     glEnd();
  321.      glBegin(GL_POLYGON); //Grass
  322.     glColor3f(0.0, 0.6, 0.3);
  323.     glVertex2i(495, 110);
  324.     glVertex2i(480, 130);
  325.     glVertex2i(470, 140);
  326.     glVertex2i(490, 130);
  327.     glVertex2i(480, 160);
  328.     glVertex2i(500, 130);
  329.     glVertex2i(505, 180);
  330.     glColor3f(0.8, 0.8, 0.1);
  331.     glVertex2i(510, 140);
  332.     glVertex2i(530, 160);
  333.     glVertex2i(520, 130);
  334.     glVertex2i(540, 140);
  335.     glVertex2i(530, 130);
  336.     glVertex2i(515, 110);
  337.     glEnd();
  338.  
  339.     glBegin(GL_POLYGON); //Grass
  340.     glColor3f(0.0, 0.6, 0.1);
  341.     glVertex2i(635, 100);
  342.     glVertex2i(620, 120);
  343.     glVertex2i(610, 130);
  344.     glVertex2i(630, 120);
  345.     glVertex2i(620, 150);
  346.     glVertex2i(640, 130);
  347.     glVertex2i(645, 170);
  348.     glColor3f(0.8, 0.8, 0.1);
  349.     glVertex2i(650, 130);
  350.     glVertex2i(670, 150);
  351.     glVertex2i(660, 120);
  352.     glVertex2i(680, 130);
  353.     glVertex2i(670, 120);
  354.     glVertex2i(655, 100);
  355.     glEnd();
  356.     }
  357. void moveboat(int x)
  358.     {
  359.     glBegin(GL_QUADS); //BOAT
  360.     glColor3f(1.9, 0.0, 0.0);
  361.     glVertex2i(100,600);
  362.     glVertex2i(400, 600);
  363.     glVertex2i(480,700);
  364.     glVertex2i(50,700);
  365.     glVertex2i(100,600);
  366.     glEnd();
  367.  
  368.     glBegin(GL_POLYGON); //BOAT
  369.     glColor3f(0.0, 1.8, 0.5);
  370.     glVertex2i(120,700);
  371.     glVertex2i(240, 700);
  372.     glVertex2i(190,760);
  373.     glEnd();
  374.  
  375.     glBegin(GL_QUADS); //BOAT
  376.     glColor3f(1.0, 1.7, 0.0);
  377.     glVertex2i(240,700);
  378.     glVertex2i(420, 700);
  379.     glVertex2i(350,760);
  380.     glVertex2i(190,760);
  381.     glVertex2i(240,700);
  382.     glEnd();
  383.  
  384.     }
  385.  
  386.  
  387.  
  388.     void moveboat1(int x)
  389.     {
  390.     glBegin(GL_QUADS); //BOAT
  391.     glColor3f(1.9, 0.0, 0.0);
  392.     glVertex2i(100,800);
  393.     glVertex2i(400, 800);
  394.     glVertex2i(480,900);
  395.     glVertex2i(50,900);
  396.     glVertex2i(100,800);
  397.     glEnd();
  398.  
  399.     glBegin(GL_POLYGON); //BOAT
  400.     glColor3f(0.0, 1.8, 0.5);
  401.     glVertex2i(120,900);
  402.     glVertex2i(240, 900);
  403.     glVertex2i(190,960);
  404.     glEnd();
  405.  
  406.     glBegin(GL_QUADS); //BOAT
  407.     glColor3f(1.0, 1.7, 0.0);
  408.     glVertex2i(240,900);
  409.     glVertex2i(420, 900);
  410.     glVertex2i(350,960);
  411.     glVertex2i(190,960);
  412.     glVertex2i(240,900);
  413.     glEnd();
  414.  
  415.     }
  416.  
  417.  
  418.  
  419.  
  420.  
  421.     void boat()
  422.     {
  423.         if (boatStatus == 1)
  424.         {
  425.             boatX +=1;
  426.         }
  427.         if (boatX>2000)
  428.         {
  429.             boatX = -600;
  430.         }
  431.         glPushMatrix();
  432.         glTranslatef(boatX, boatY, 0);
  433.         moveboat(1);
  434.         glPopMatrix();
  435.     }
  436.  
  437.     void boat1()
  438.     {
  439.         if (boatStatus1 == 1)
  440.         {
  441.             boatX1 +=.5;
  442.         }
  443.     if (boatX1>2000)
  444.     {
  445.         boatX1 = -600;
  446.     }
  447.         glPushMatrix();
  448.         glTranslatef(boatX1, boatY1, 0);
  449.         moveboat1(1);
  450.         glPopMatrix();
  451.     }
  452.  
  453.  
  454.  
  455.     void keyboard(unsigned char key,int x,int y)
  456.  
  457.     {
  458.  
  459.         if(key=='1')
  460.        {                       //boat start
  461.         boatStatus = 1;
  462.  
  463.         }
  464.  
  465.  
  466.         else if(key== '2')
  467.             //boat stop
  468.         {
  469.             boatStatus = 0;
  470.  
  471.         }
  472.  
  473.  
  474.  
  475.         else if(key== '3')      //boat1 start
  476.  
  477.          {   boatStatus1 = 1;
  478.  
  479.         }
  480.  
  481.         else if(key=='4')
  482.             //boat1 stop
  483.         {
  484.             boatStatus1 = 0;
  485.  
  486.         }
  487.  
  488.         else if( key =='S'|| key=='s')      //sun start
  489.         {
  490.             sunStatus = 1;
  491.         }
  492.  
  493.         else if( key =='N'|| key=='n')      //sun  start
  494.         {
  495.             sunStatus = 0;
  496.         }
  497.  
  498.         else if( key =='C'|| key=='c')
  499.             //megh start
  500.         {
  501.             meghStatus = 1;
  502.         }
  503.         else if( key =='e'|| key=='N')
  504.             //megh start
  505.         {
  506.             meghStatus = 0;
  507.     }
  508.         else{
  509.  
  510.         }
  511.  
  512.  
  513.  
  514.     }
  515.  
  516.  
  517.    void myDisplay(void)
  518.     {
  519.              sky();
  520.              moveSun();
  521.  
  522.              hills();
  523.              house();
  524.              river();
  525.              movemegh();
  526.              boat();
  527.              boat1();
  528.              tree();
  529.              glFlush();
  530.              glutPostRedisplay();
  531.              glutSwapBuffers();
  532. }
  533.  
  534. void myInit(void)
  535. {
  536.     glClearColor(0.0, 0.0, 1.0, 0.0);
  537.     glColor3f(1.0f, 1.0f, 1.0f);
  538.     glPointSize(0.0);
  539.     glMatrixMode(GL_PROJECTION);
  540.     glLoadIdentity();
  541.     gluOrtho2D(0.0, 2000.0, 0.0, 1500.0);
  542. }
  543.  
  544. int main(int argc, char** argv)
  545. {
  546.     glutInit(&argc, argv);
  547.     glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
  548.     glutInitWindowSize(2000, 1500);
  549.     glutInitWindowPosition(0, 0);
  550.  
  551.     glutCreateWindow("project");
  552.     glutKeyboardFunc(keyboard);
  553.     glutDisplayFunc(myDisplay);
  554.     myInit();
  555.     glutMainLoop();
  556. }
  557.  
Add Comment
Please, Sign In to add comment