博文

用Java实现3D模型成像(2005-12-16 11:55:00)

摘要:        代码如此的短,被我优化过,所以不很容易看懂。有这个想法源于看图形学时看到的直线的画法,当时我想,用这个方法用来画空间投射线也应该很容易。于是就做了这个基于空间投射线的3D模型成像。         代码里面基本是算法,但是终归要有一个3D模型才能成像,于是我建立了一个3维数组,用来储存空间的点信息。也就是byte[][][] data;然后随便画了几个矩形、几个点,看起来效果还是不错的。(其实class Mod里面基本上都在画这些点和矩形)         【原理】从视点透出201×201的空间投射线,如果和空间中的3D模型相碰撞则返回并记录下点的颜色信息。最后产生一张201×201的2D图形,然后放大到603×603,并显示。         用(E)(D)(S)(F)来控制视点的上下左右移动,用(J)(K)(L)来控制视点的前进后退和复原。        【Model.java】 import java.awt.*;import java.awt.event.*;import java.awt.image.*;import javax.swing.*; public class Model{  public static void main(String [] args){    MFrame f = new MFrame();    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    f.setSize(608,628);    f.setVisible(true);  }} class MFrame extends JFrame{  MFrame(){   ......

阅读全文(4374) | 评论:0