java3D与计算机图形学期末复习 第三章(1)

java3D与计算机图形学期末复习 第三章 java3D基本图形功能

图片与定义摘自《Java 3D 与计算机三维动态图形网络编程设计》

重点复习:

1、SimpleUniverse类

该类可以快速的设置一个最小的用户环境,并且很容易使一个Java3D应用程序运行起来。

该类创建一个Locale(场景)、一个单独的ViewingPlatform(观察平台)和一个Viewer(观察者对象),其中,该ViewingPlatform和Viewer观察者都是用其所有默认参数创建的。

2、ViewingPlatform类

透视投影(Perspective Projection):模拟人眼睛看东西和相机照相的原理,特点是离视点近的形体显得大,离视点远的形体显得小。其中,在投影平面上的投影通过相似三角形的比例关系进行计算。

平行投影(Parallel Projection):将空间的三维形体分别向三个坐标平面进行平行投影,形成三视图。最常用的就是工程制图中的主视图、俯视图和侧视图。

3、Shape3D类

Shape3D类定义所有的几何体。它包含几何体与该几何体的外观属性。几何体部分定义三维空间体的几何形状,外观属性部分定义颜色、材质等属性。

在一个Shape3D的几何对象列表中的所有元素必须属于同一个等价类,也就是属于同一种基本的几何类型。

等价类:对Geometry Array类的所有子类,所有的点对象是等价的,所有线对象是等价的,所有多边形对象是等价的。

4、Appearance类

Appearance类对象定义所有与显示相关的外观状态,这些状态可设置为一个Shape3D节点的组件对象(Component Object)。

这些显示状态包括下列几个方面:

颜色属性、点的属性、线属性、多边形属性、可视化模式、透明度属性、材质、纹理、纹理属性、纹理坐标的产生。

5、BranchGroup类

一个 BranchGroup作为一个场景图分支的根。BranchGroup对象是唯一能插入到一个Locale对象中的对象。以 BranchGroup节点为根的场景图子图是一个编辑单元。

注意:如果一个 BranchGroup节点包含在另一个子图中,作为其他Group的子节点,则该BranchGroup节点不能插入到一个Locale 节点。

6、TransformGroup类

TransformGroup节点通过Transform3D对象定义了一个唯一的3D空间坐标变换,该变换可对其子节点进行位置、方向及比例变换。(仿射变换)

7、GeometryArray类

GeometryArray类是 PointArray类,、LineArray类、TriangleArray类、QuadArray类、GeometryStripArray类与IndexedGeometryArray类的直接父类

GeometryArray类的对象中包含独立的位置坐标数组、颜色数组、法向量数组、纹理坐标数组和顶点属性。

8、PointArray类

PointArray类是组织与定义点的数组类

9、PointAttribute类

PointAttributes类的对象用来定义点的各种属性

点的属性包括:

(1)Size,点的大小(默认为1个像素);

(2)Anitialiasing,反走样(当一个点的大小大于一个像素单位时,为了使点在显示时外形接近于一个圆形,则需要设置该参数)。

10、IndexedPointArray类

从定义好的所有点的坐标与颜色数组中选择出一部分点进行显示。

Eclipse平台JAVA实现 1. 实验内容 用基本增量算法和Bresenham算法画直线 2.实验目的 1)理解在显示器上画图与在纸上画图的本质区别; 2)掌握直线的光栅扫描转换过程; 3)掌握不同算法绘制直线的思路和优缺点。 3. 实验要求 1)将像素网格表现出来,建立网格坐标系; 2)用橡皮筋的形式输入参数; 3)鼠标移动时,显示鼠标当前位置; 4)显示判别式的计算过程和下一点的选择策略; 5)记录生成点的坐标,建议用表的形式; 6)图形生成过程可以重复进行。 1. 实验内容 用正负法和Bresenham算法画圆弧 2.实验目的 1)掌握圆及圆弧的光栅扫描转换过程; 2)掌握不同算法绘制圆弧的技巧和优缺点。 3. 实验要求 1)将像素网格表现出来,建立网格坐标系; 2)用橡皮筋的形式输入参数; 3)鼠标移动时,显示鼠标当前位置; 4)显示判别式的计算过程和下一点的选择策略; 5)记录生成点的坐标,建议用表的形式; 6)图形生成过程可以重复进行。 1. 实验内容 用Cohen-SutherLand算法和liang _barsky算法进行线段裁剪 2.实验目的 1)理解裁剪的相关概念 2)掌握直线段的一般裁剪过程; 3)理解并掌握Cohen-SutherLand 算法的编码思想; 4)理解并掌握Liang_Barsky算法的参数化裁剪思想; 3. 实验要求 1)将像素网格表现出来,建立网格坐标系; 2)用橡皮筋的形式输入剪裁线段和裁剪窗口; 3)鼠标移动时,显示鼠标当前位置; 4)对于线段裁剪,线段被窗口的四条边裁剪的过程要显示出来; 6)裁剪过程可以重复进行。 1. 实验内容 用Sutherland-Hodgman算法进行多边形裁剪 2.实验目的 1)理解多边形裁剪与直线段裁剪的区别; 2)掌握多边形的裁剪过程; 3)理解并掌握Sutherland-Hodgman算法的裁剪思想。 3. 实验要求 1)将像素网格表现出来,建立网格坐标系; 2)用橡皮筋的形式输入剪裁多边形和裁剪窗口; 3)鼠标移动时,显示鼠标当前位置; 4)多边形被窗口的四条边裁剪的过程以及多边形顶点增删的过程要显示出来; 5)裁剪过程可以重复进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加油呀兄弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值