الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مثال عن OpenGL في ال Java

مغلق
بدأه mgbaw في 23 نوفمبر 2004 · 0 رد · 660 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1

المثال كما وعدتكم:

import java.awt.*;
import java.awt.event.*;

import net.java.games.jogl.*;

public class Lesson02
{
  static class Renderer
    implements GLEventListener,
               KeyListener
  {
     public void display(GLDrawable gLDrawable)
    {

هنا يمكنك وضع أوامر الرسم بنفس الطريقة التي كنت تعمل بها في السي

فقط قم بتعريف Object gl

ثم إستدعي ال Function

من خلال ال gl

مثلا بدل من glLoadIdentity()

gl.glLoadIdentity()

و كما تعوّدت في السي

و كذلك glu

      final GL gl = gLDrawable.getGL();
      gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
      gl.glLoadIdentity();
      gl.glTranslatef(-1.5f, 0.0f, -6.0f);
      gl.glBegin(GL.GL_TRIANGLES);  // Drawing Using Triangles
        gl.glVertex3f( 0.0f, 1.0f, 0.0f);	// Top
        gl.glVertex3f(-1.0f,-1.0f, 0.0f);	// Bottom Left
        gl.glVertex3f( 1.0f,-1.0f, 0.0f);	// Bottom Right
      gl.glEnd();    // Finished Drawing The Triangle
      gl.glTranslatef(3.0f, 0.0f, 0.0f);
      gl.glBegin(GL.GL_QUADS);            // Draw A Quad
        gl.glVertex3f(-1.0f, 1.0f, 0.0f);	// Top Left
        gl.glVertex3f( 1.0f, 1.0f, 0.0f);	// Top Right
        gl.glVertex3f( 1.0f,-1.0f, 0.0f);	// Bottom Right
        gl.glVertex3f(-1.0f,-1.0f, 0.0f);	// Bottom Left
      gl.glEnd();    // Done Drawing The Quad
      gl.glFlush();
    }

 public void displayChanged(GLDrawable gLDrawable, boolean modeChanged, boolean deviceChanged)
    {
    }

هذا ال Function

يقوم بعمل إنشاء لل OpenGL

وتجهيز إستقبال الأحداث من keyboard

  public void init(GLDrawable gLDrawable)
    {
      final GL gl = gLDrawable.getGL();
      gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
      gl.glShadeModel(GL.GL_FLAT);
      gLDrawable.addKeyListener(this);
    }

//  تجهيز ال عرض من هنا  

public void reshape(GLDrawable gLDrawable, int x, int y, int width, int height)
    {{
      final GL gl = gLDrawable.getGL();
      final GLU glu = gLDrawable.getGLU();

      if (height <= 0) // avoid a divide by zero error!
        height = 1;
      final float h = (float)width / (float)height;
      gl.glViewport(0, 0, width, height);
      gl.glMatrixMode(GL.GL_PROJECTION);
      gl.glLoadIdentity();
      glu.gluPerspective(45.0f, h, 1.0, 20.0);
      gl.glMatrixMode(GL.GL_MODELVIEW);
      gl.glLoadIdentity();
    }}

    public void keyPressed(KeyEvent e)
    {
      if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
        System.exit(0);
    }

    public void keyReleased(KeyEvent e) {}

    public void keyTyped(KeyEvent e) {}
  }

  /** Program's main entry point
   * @param args command line arguments.
   */
  public static void main(String[] args)
  {

هنا تجهيز ال Window

    Frame frame = new Frame("Lesson 2: Your First Polygon");
    GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas(new GLCapabilities());
    canvas.addGLEventListener(new Renderer());
    frame.add(canvas);
    frame.setSize(640, 480);
    frame.addWindowListener(new WindowAdapter()
    {
      public void windowClosing(WindowEvent e)
      {
        System.exit(0);
      }
    });
    frame.show();
    canvas.requestFocus();
  }
}

الدرس من موقع

Nehe Tutorials

تم تعديل هذه المشاركة بواسطة mgbaw في 23 نوفمبر 2004 في 11:41

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…