人体模型 java代码_java3d人体模型.doc

java3d人体模型

Java、Java 3D与计算机几何设计实验

简单的人体队伍模型

1.实验内容:

制作一个简单的人体跳舞排成的三角形队伍模型,通过利用课本第五章的java3D的坐标变换和基本形体来完成该实验。

在这次试验中利用到与坐标变换相关的类有TransformGroup类、Transform3D类的功能与应用,还使用到一些基本的形体如球体、圆柱体、圆锥体的功能参数与编程应用,同时还涉及到了SharedGroup类的功能与应用。

2.实验步骤:

(1)首先,人体的头是用一个半径为0.3的球体来模拟,它所处的坐标为(0.f,1.1f,0.f),也就是球体的圆心处于的坐标点。

人体的双手,同样是用球体模拟,它们的半径都为1.5,分别处的坐标为(0.3f,0.52f,0.f))和(-0.3f,0.52f,0.f)),两个相对称的球体,便模拟为人体的左右手。

人体的身体,就用一个简单的圆锥体代替,它的底面半径为0.4,高为0.8,中心点所在的坐标是(0.f,0.4f,0.f),由圆锥体得高为0.8,加上人体头球体的半径0.3,刚好就是该球体的中心点坐标的y=1.1值,正好将头与身体连接起来。

最后,人体的双腿用两个也是相对称的圆柱体模拟,它们的底面半径为0.08,高为0.5,则为腿长,相应的坐标为(0.15f,-0.25f,0.f)与(-0.15f,-0.25f,0.f)。

(2)通过使用SharedGroup类,将做好的人体模型通过复制,先setTranslation(new Vector3f(0.6f,0.f,0.f))和setTranslation(new Vector3f(-0.6f,0.f,0.f),将人向x坐标方向进行复制,则在x方向上形成了以三人为一组的队伍,再setTranslation (new Vector3f(0.f,0.f,0.6f),在z的正半轴方向上复制一个人体模型,就这样,就完成了整一个实验,完成了一个三角形的类似跳舞的队伍模型。

3.实验代码如下:

import java.applet.Applet;

import java.awt.BorderLayout;

import java.awt.Frame;

import java.awt.*;

import java.awt.GraphicsConfiguration;

import com.sun.j3d.utils.applet.MainFrame;

import com.sun.j3d.utils.geometry.*;

import com.sun.j3d.utils.geometry.ColorCube;

import com.sun.j3d.utils.universe.*;

import com.sun.j3d.utils.behaviors.mouse.*;

import com.sun.j3d.utils.geometry.Cone;

import com.sun.j3d.utils.geometry.Cylinder;

import com.sun.j3d.utils.geometry.Sphere;

import javax.media.j3d.*;

import javax.vecmath.*;

import java.awt.event.*;

public class cp extends Applet

{

public BranchGroup createBranchGroupSceneGraph()

{

BranchGroup BrachGroupRoot = new BranchGroup();

BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);

Color3f bgColor = new Color3f(1.0f,1.0f,1.0f);

Background bg = new Background(bgColor);

bg.setApplicationBounds(bounds);

BrachGroupRoot.addChild(bg);

Color3f directionalColor = new Color3f(0.f,1.f,1.f);

Vector3f vec =new Vector3f(-1.f,-1.f,-1.f);

DirectionalLight directionalLight = new DirectionalLight(directionalColor,vec);

directionalLight.setInfluencingBounds(bounds);

BrachGrou

你可能感兴趣的:(人体模型,java代码)