2

我想知道是否有任何简单的代码示例或指南可以在不使用 Java3D 或 OpenGL 等任何 3D 库的情况下在 Java 中创建 3D 矩形!

4

3 回答 3

2

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 场景。

于 2012-12-28T17:21:48.943 回答
0

您可以使用 java.awt.Graphics.draw3DRect() 方法。
http://www.java-examples.com/draw-3d-rectangle-square-applet-window-example

于 2012-12-28T16:30:23.120 回答
0

我已经实现了简单的查看器,您可以在http://dl.dropbox.com/u/14767221/projection.7z下载

于 2012-12-28T16:35:23.863 回答