예제 #1
0
        void mouseRotateCube()
        {
            double d = 0.5;

            byte[] raster =
                new byte[128];

            // Rastert die Fronflaeche des Wuerfels
            // Initialisieren mit   01010101...
            //						10101010...

            GL.glColor3f(0.5f, 0.5f, 0.3f);
            GLUT.glutWireCube(2.0 * d);

            for (int i = 0; i < 128; i++)
            {
                raster[i] = ((i / 4) % 2 != 0) ? (byte)85 : (byte)170;
            }


            GL.glPolygonStipple(raster);
            GL.glEnable(GL.GL_POLYGON_STIPPLE);

            GL.glBegin(GL.GL_QUADS);
            GL.glVertex3d(-d, -d, d);
            GL.glVertex3d(-d, d, d);
            GL.glVertex3d(d, d, d);
            GL.glVertex3d(d, -d, d);
            GL.glEnd();

            GL.glDisable(GL.GL_POLYGON_STIPPLE);
        }
예제 #2
0
 public void gelenk()
 {
     //Gelenk zeichnen
     GL.glTranslated(0.0, 0.0, 0.0);
     GL.glRotated(0, 0, 1, 0);
     GL.glColor3f(1.0f, 1.0f, 1.0f);
     GLUT.glutWireSphere(0.1, 100, 150);
 }
            public void renderScene()
            {
                GL.Enable(GL_DEPTH_TEST);

                // Clear Color and Depth Buffers
                GL.Clear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
                GL.ClearColor(0.5, 0.5, 0.5, 1.0);           // background is gray | ONLY takes 2 Overloads

                // Reset transformations
                GL.LoadIdentity();

                // Set the camera
                gluLookAt(0.0f, 0.0f, 10.0f,
                          0.0f, 0.0f, 0.0f,
                          0.0f, 1.0f, 0.0f);

                // Enable lighting
                GL.Enable(GL_LIGHTING);
                GL.Enable(GL_LIGHT0);
                GL.Enable(GL_COLOR_MATERIAL);

                // draw bbx
                drawBBX();

                // draw yPlane
                GL.LineWidth(2);
                GL.Begin(GL_LINES);  //draw the yPlane
                GL.Vertex3(-4.0f, yPlane, 0.0f);
                GL.Vertex3(4.0f, yPlane, 0.0f);
                GL.End();

                //draw the ball(s)
                //ball.Draw();
                DrawAllBalls();
                Target.DrawALLBalls();

                //draw the cannon
                //double cX; //<<next 3 lines, for 2d
                //double cY;
                //getCannonEndPts(angle1,cX,cY);
                double cX;
                double cY;
                double cZ;

                getCannonEndPts3D(angle1, angle2, cX, cY, cZ);
                GL.Color3(0, 0, 1);
                GL.LineWidth(2);
                GL.Begin(GL_LINES);  //draw the yPlane
                GL.Vertex3(cannon.GetX(), cannon.GetY(), cannon.GetZ());
                GL.Vertex3(cX, cY, cZ);
                GL.End();

                //ball.Update(dt);
                UpdateAllBalls();
                Target.Update(head);

                GLUT.glutSwapBuffers();
            }
예제 #4
0
 public void abrissbirne()
 {
     //Abrissbirne zeichnen
     GL.glTranslated(0.0, 0.0, targetRopeLength);
     GL.glRotated(0, 0, 0, 0);
     GL.glColor3f(0.0f, 0.0f, 0.0f);
     GLUT.glutWireSphere(0.1, 100, 150);
     //GLUT.glutWireSphere(targetBowlDiameter, 100, 150);
 }
예제 #5
0
 public void DrawLightSource(float [] rgb)
 {
     //Draw Light Source
     GL.glDisable(GL.GL_LIGHTING);
     GL.glTranslatef(X, Y, Z);
     //Yellow Light source
     GL.glColor3f(rgb[0], rgb[1], rgb[2]);
     GLUT.glutSolidSphere(0.9, 10, 10);
     GL.glTranslatef(-X, -Y, -Z);
 }
예제 #6
0
        public void drawSelf()
        {
            GL.glPushMatrix();
            GL.glTranslatef(posX, posY, posZ);

            GL.glColor3f(0.0f, 0.0f, 0.0f);
            GLUT.glutSolidSphere(bulletsize, 8, 8);

            GL.glPopMatrix();
        }
예제 #7
0
파일: Teapot.cs 프로젝트: jbnivoit/projects
        public Teapot(GLUT glut, double scale)
        {
            this.glut = glut;
            gl        = glut.gl;

            display_list = gl.gen_lists(1);
            gl.new_list(display_list, GL.COMPILE);
            glut.solid_teapot(scale);
            gl.end_list();
        }
예제 #8
0
        public void DrawLightSource()
        {
            GL.glPushMatrix();

            GL.glDisable(GL.GL_LIGHTING);
            GL.glColor3f(1, 1, 1);
            GL.glTranslatef(this.X, this.Y, this.Z);
            GLUT.glutSolidSphere(1, 64, 64);
            GL.glEnable(GL.GL_LIGHTING);

            GL.glPopMatrix();
        }
예제 #9
0
 public void drawSelf()
 {
     GL.glPushMatrix();
     GL.glTranslatef(posX, posY, posZ);
     if (type == 2)
     {
         if (lazersize < 10)
         {
             lazersize += 0.2f;
         }
         GL.glColor3f(0.7f, 0.7f, 1.0f);
         GL.glRotatef(rotation, 0.0f, 1.0f, 0.0f);
         GLU.gluCylinder(obj, bulletsize, bulletsize, lazersize, 8, 8);
     }
     else
     {
         GL.glColor3f(0.0f, 0.0f, 0.0f);
         GLUT.glutSolidSphere(bulletsize, 8, 8);
     }
     GL.glPopMatrix();
 }
예제 #10
0
 public override void DrawSolidSphere(double radius, int slices, int stacks)
 {
     GLUT.glutSolidSphere(radius, slices, stacks);
 }
예제 #11
0
        /// <summary>
        /// Zeichnet die Objekte
        /// </summary>
        public void draw()
        {
            // Verschieben des Koordinatensystems um -6 in Z-Richtung
            // also "nach hinten"
            // und kippen nach Oben
            GL.glTranslated(0.0, 0.0, -6.0);


            //---------------
            //BLAUER ZYLINDER1
            //Vorgabe der Perspektive (90° auf die X-Achse) für das im folgenden erzeugte Objekt
            GL.glRotated(90, 1, 0, 0);

            //lässt den Zylinder (blau) rotieren mithilfe des Schiebereglers
            GL.glRotated(targetAngle, 0, 0, 1);

            // Zylinderobjekt erzeugen
            GLUquadric zylinder = GL.gluNewQuadric();

            // Zeicheneigenschaften einstellen:
            // Drahtgittermodell
            GLU.gluQuadricDrawStyle(zylinder, GLU.GLU_LINE);

            // ab jetzt in blau zeichnen
            GL.glColor3f(0.0f, 0.0f, 1.0f);

            // Zeichnen des eigentlichen Zylinders
            // bottom-Durchmesser, top-Durchmesser, Höhe,
            // Anzahl der Linien-Segmente
            // Anzahl der Linien in der Höhe
            GLU.gluCylinder(zylinder, 0.2, 0.2, 2, 200, 100);
            //---------------

            //MAGENTA ZYLINDER2
            GL.glTranslated(0.0, 0.0, 0.0);
            GL.glRotated(120, 0, 1, 0);
            GL.glColor3f(1.0f, 0.0f, 1.0f);
            GLUquadric zylinder2 = GL.gluNewQuadric();

            GLU.gluCylinder(zylinder2, 0.1, 0.1, 1.5, 20, 10);

            //GRÜNER ZYLINDER3
            GL.glTranslated(0.0, 0.0, 1.5);
            GL.glRotated(-60, 0, 1, 0);
            GL.glColor3f(0.0f, 1.0f, 0.0f);
            GLUquadric zylinder3 = GL.gluNewQuadric();

            GLU.gluCylinder(zylinder3, 0.1, 0.1, targetArmLength, 20, 10);

            //ROTER ZYLINDER4
            //GL.glTranslated(0.0, 0.0, targetArmLength); targetArmLength bezieht sich hier auf die Position des Vorgängerobjekts
            GL.glTranslated(0.0, 0.0, targetArmLength);
            GL.glRotated(-60, 0, 1, 0);
            GL.glColor3f(1.0f, 0.0f, 0.0f);
            GLUquadric zylinder4 = GL.gluNewQuadric();

            GLU.gluCylinder(zylinder4, 0.01, 0.01, targetRopeLength, 20, 10);

            //GELBE KUGEL
            //GL.glTranslated(0.0, 0.0, targetRopeLength); targetRopeLength bezieht sich hier auf die Position des Vorgängerobjekts
            GL.glTranslated(0.0, 0.0, targetRopeLength);
            GL.glRotated(0, 0, 0, 0);
            GL.glColor3f(1.0f, 1.00f, 0.00f);
            GLUT.glutWireSphere(targetBowlDiameter, 100, 150);
        }