⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graph3dappframe.java

📁 java写的3D程序,src目录下有其源程序.
💻 JAVA
字号:
package myprojects.graph3dapp;

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import java.io.*;
import javax.imageio.*;

/**
 * @(#)Graph2DApp.java
 *
 * JFC Sample application
 *
 * @author 
 * @version 1.00 05/02/02
 */
public class Graph3DAppFrame extends JFrame {
	BufferedImage image = null;			//缓存图像
	Canvas3D canvas;
	JScrollPane scrollPane;
	
	Camera camera;
	
	JMenuBar menuBar = new JMenuBar();
    JMenu menuFile = new JMenu();
    JMenuItem menuFileExit = new JMenuItem();
    
    /**
     * The constructor.
     */  
	public Graph3DAppFrame() {
		// Add window listener.
        addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    Graph3DAppFrame.this.windowClosed();
                }
            }
        );  
        
        image = new BufferedImage(400, 400, BufferedImage.TYPE_INT_ARGB);
        Graphics g = image.getGraphics();
        g.setColor(Color.white);
        g.fillRect(0,0,image.getWidth(), image.getHeight());
        canvas = new Canvas3D(image);
        camera = new Camera();
        camera.setCanvasSize(image.getWidth(), image.getHeight());
        canvas.setCamera(camera);
        
        Material m;
        
        Box box = new Box(new Vector3d(-1, -1, -1), 2, 2, 2);
        box.rotateY((double)Math.PI/6);
        box.rotateX((double)Math.PI/6);
        m = new Material();
        m.setKd(1, 1, 0);
        box.setMaterial(m);
        //box.scale(0.9, 0.9, 0.9);
        canvas.add(box);
        
        //box.scale(0.5f, 0.5f, 0.5f);
        
    	Cone cone = new Cone(new Vector3d(0, -1, 0), 1.2, 3, 100);
    	m = new Material();
    	m.setKd(1, 0, 0);
    	cone.setMaterial(m);
    	cone.rotateY((double)Math.PI/2);
    	cone.rotateX((double)Math.PI/6);
    	cone.translate(0, 0, 0);
    	canvas.add(cone);
    	
    	/*box = new Box(new Vector3d(-1, -1, -1), 2, 2, 2);
    	m = new Material();
    	m.setKd(0, 0, 1);
    	box.setMaterial(m);
    	box.rotateY((double)Math.PI/6);
    	box.rotateX((double)Math.PI/6);
    	box.translate(-1, -0.5, 0);
    	canvas.add(box);*/
        
        System.out.println("start");
        canvas.refresh();
        System.out.println("end");
        
    	initComponents();
    }
    
    protected void initComponents() {
    	Container contentPane = getContentPane();
    	
    	scrollPane = new JScrollPane(canvas);
    	contentPane.add(scrollPane, BorderLayout.CENTER);
    	
    	Icon fileIcon = new ImageIcon("images/file.gif");
		Icon newIcon = new ImageIcon("images/new.gif");
		Icon openIcon = new ImageIcon("images/open.gif");
		Icon saveIcon = new ImageIcon("images/save.gif");
		
		Icon lineIcon = new ImageIcon("images/line.gif");
		Icon rectIcon = new ImageIcon("images/rect.gif");
		Icon circleIcon = new ImageIcon("images/circle.gif");
		Icon parabolaIcon = new ImageIcon("images/parabola.gif");
		Icon splineIcon = new ImageIcon("images/spline.gif");
		Icon bezierIcon = new ImageIcon("images/bezier.gif");
		Icon bsplineIcon = new ImageIcon("images/bspline.gif");
		Icon polygonIcon = new ImageIcon("images/polygon.gif");
		Icon textIcon = new ImageIcon("images/text.gif");
		
    	menuFile.setText("File");
        menuFileExit.setText("Exit");
        menuFileExit.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    Graph3DAppFrame.this.windowClosed();
                }
            }
        ); 
        menuFile.add(menuFileExit);
        menuBar.add(menuFile);
        setJMenuBar(menuBar);
    }
    
    protected void windowClosed() {
        System.exit(0);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -