2012-12-28 19 views
2

我想知道是否有任何简单的代码示例或指南在Java中创建3D矩形而不使用任何3D库(如Java3D或OpenGL)!在Java中没有任何库的情况下编程3D形状

+0

_在Java中创建3D矩形而不使用任何3D库,比如Java3D或OpenGL_,但是为什么? –

+0

你将不得不多解释一个3D矩形,只有6个点的空间。 – Frozendragon

+1

您是否在问如何编写渲染器?有很多来源......大部分都是用C++语言编写的,但翻译起来并不困难......或者您正在寻求一个软件渲染库 - 我怀疑这是否存在/有重要的支持,因为它不会使在许多情况下需要做的事情 – gbtimmon

回答

1

一个3D矩形下载被称为直角棱镜。

定义3D形状不是很困难。这是一个矩形棱镜的定义。

import java.awt.Graphics; 

public class RectangularPrism { 

    protected Point3D originPoint; 
    protected Point3D xPoint; 
    protected Point3D yPoint; 
    protected Point3D zPoint; 

    public RectangularPrism() { 

    } 

    public RectangularPrism(Point3D originPoint, Point3D xPoint, 
      Point3D yPoint, Point3D zPoint) { 
     this.originPoint = originPoint; 
     this.xPoint = xPoint; 
     this.yPoint = yPoint; 
     this.zPoint = zPoint; 
    } 

    public void setOriginPoint(Point3D originPoint) { 
     this.originPoint = originPoint; 
    } 

    public void setxPoint(Point3D xPoint) { 
     this.xPoint = xPoint; 
    } 

    public void setyPoint(Point3D yPoint) { 
     this.yPoint = yPoint; 
    } 


    public void setzPoint(Point3D zPoint) { 
     this.zPoint = zPoint; 
    } 

    public void render(Graphics g, Point3D viewPoint) { 

    } 

    public class Point3D { 
     protected int x; 
     protected int y; 
     protected int z; 

     public int getX() { 
      return x; 
     } 

     public void setX(int x) { 
      this.x = x; 
     } 

     public int getY() { 
      return y; 
     } 

     public void setY(int y) { 
      this.y = y; 
     } 

     public int getZ() { 
      return z; 
     } 

     public void setZ(int z) { 
      this.z = z; 
     } 

    } 

} 

这是创建呈现方法,需要一些计算。对于您想要定义的每个3D形状,计算结果都会有所不同。

您的调用例程将不得不找出渲染所有3D形状的顺序。基本上,必须首先渲染最远的3D形状,以便更接近的3D形状重合。

3D库不仅具有所有这一切,它还经过优化,可以在尽可能短的时间内渲染3D场景。

相关问题