基于java的opengl计算机图形学学习资料源码


基于java的opengl计算机图形学学习资料源码,包含各种小例子,如机器人,3D模型,镜面等,深入浅出,适合初学者学习
资源截图
代码片段和文件信息
package A1;

import com.sun.opengl.util.Animator;

import java.awt.Color;
import java.awt.frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;

/**
 * A class to demonstrate a simple JOGL-powered button class and scene alternation.
 * Please READ the code LEARN underlying techniques and APPLY them to your work of Assignment 1.
 *
 * DO NOT BLINDLY COPY AND PASTE THE SAMPLE CODE!!
 * 
 * @author Johnny Chien
 */
public class A1 implements GLEventListener {
SimpleButton button;
Renderables day;
Renderables night;

    public static void main(String[] args) {
        frame frame = new frame(“Button DEMO for A1“);
        GLCanvas canvas = new GLCanvas();
        canvas.addGLEventListener(new A1());      
        frame.add(canvas); 
        frame.setSize(640 640);

        final Animator animator = new Animator(canvas);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                new Thread(new Runnable() {
                    public void run() {
                        animator.stop();
                        System.exit(0);
                    }
                }).start();
            }
        });
        
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        animator.start();
    }

    public void init(GLAutoDrawable drawable) {
        GL gl = drawable.getGL();
        gl.setSwapInterval(1);
        gl.glClearColor(0.0f 0.0f 0.0f 0.0f);
        gl.glShadeModel(GL.GL_SMOOTH);
        
        button = new SimpleButton();
        drawable.addMouseListener(button);
        
        // compose the Day scene
        day = new Renderables();      
        day.Add(new GradientSky(Color.BLUE Color.CYAN));
        
        // compose the Night scene
        night = new Renderables();
        night.Add(new GradientSky(Color.BLACK Color.GRAY));
        
        // WARNING: Doing scene composition like this hazards your code readability.
        //          It will be a mess as you put more and more objects into the scene.
        //          Leave these to each subclass‘s constructor!!
    }

    public void reshape(GLAutoDrawable drawable int x int y int width int height) {
        GL gl = drawable.getGL();
       button.UpdateCanvasSize(width height); // tell buttons the new dimensions of the canvas
    }
    
    public void display(GLAutoDrawable drawable) {
        GL gl = drawable.getGL();
        gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
        gl.glLoadIdentity();

        if (button.IsChecked()) {
         day.Render(gl);
        } else {
         night.Render(gl);
        }
   
        button.Render(gl);
        
        // Flush all d

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        332  2016-04-15 10:26  openglopengl.classpath

     文件        378  2016-04-15 10:21  openglopengl.project

     文件        749  2016-12-24 10:41  openglopenglinA1A1$1$1.class

     文件        807  2016-12-24 10:41  openglopenglinA1A1$1.class

     文件       3144  2016-12-24 10:41  openglopenglinA1A1.class

     文件        957  2016-12-24 10:41  openglopenglinA1GradientSky.class

     文件        150  2016-12-24 10:41  openglopenglinA1Renderable.class

     文件       1030  2016-12-24 10:41  openglopenglinA1Renderables.class

     文件       3100  2016-12-24 10:41  openglopenglinA1SimpleButton.class

     文件        818  2016-12-24 10:41  openglopenglinA2Heli16Flight$1$1.class

     文件        876  2016-12-24 10:41  openglopenglinA2Heli16Flight$1.class

     文件       2921  2016-12-24 10:41  openglopenglinA2Heli16Flight.class

     文件       1177  2016-12-24 10:41  openglopenglinA2SceneCamera.class

     文件       2157  2016-12-24 10:41  openglopenglinA2SceneLighting.class

     文件       1053  2016-12-24 10:41  openglopenglinautumnground.class

     文件       1336  2016-12-24 10:41  openglopenglinForestSystem.class

     文件       1035  2016-12-24 10:41  openglopenglinground.class

     文件       2310  2016-12-24 10:41  openglopenglinhuman.class

     文件        923  2016-12-24 10:41  openglopenglinParticle.class

     文件       2400  2016-12-24 10:41  openglopenglinParticleSystem.class

     文件       3092  2016-12-24 10:41  openglopenglinplane.class

     文件       1277  2016-12-24 10:41  openglopenglin
atatedflower.class

     文件       1461  2016-12-24 10:41  openglopenglinseason$1.class

     文件       1305  2016-12-24 10:41  openglopenglinseason$2.class

     文件        758  2016-12-24 10:41  openglopenglinseason$3$1.class

     文件        816  2016-12-24 10:41  openglopenglinseason$3.class

     文件       7375  2016-12-24 10:41  openglopenglinseason.class

     文件       2989  2016-12-24 10:41  openglopenglinsnowman.class

     文件       2053  2016-12-24 10:41  openglopenglinSoundPlayer.class

     文件       1747  2016-12-24 10:41  openglopenglinsun.class

............此处省略548个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)