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

مثال ال JOGL

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

لتنزيل ال Package إذهب إلى

كيفية كتابة برامج ال OpenGL في ال Java, خطوات التنزيل و روابط....

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

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

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

ملاحظة مهمة للإخوة الذين يعملون على نسخة Java 1.5.0 الجديدة

يمكنك عمل improt static net.games.jogl.*;

و على ما أظن يمكنك العمل دون تعريف ال Object gl

      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();
    }

فقط إكتب ال Function

كما هو

 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();
  }
}

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

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

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