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

java3D与计算机图形学期末复习 第五章 坐标变换与基本形体

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

重点复习:

1、图形坐标变换

初始点A坐标为(x0,y0),变换后点A'坐标为(x1,y1)

(1)平移变换

矩阵表示:,其中Tx=(x1-x0),Ty=(y1-y0)。

(2)旋转变换

矩阵表示:,其中α为点A围绕圆心逆时针旋转的角度。(如果是顺时针旋转α角,将上面的α全部替换成-α即可)

(3)等比变换

矩阵表示:,其中Sx= x1/x0,Sy= y1/y0。

(4)轴对称变换

轴对称变换是特殊的等比变换,Sx=1,Sy=-1,是对于x轴对称;Sx=-1,Sy=1,是对于y轴对称。

2、组合变换

将上述四种变换,综合起来使用就可以求出复杂的变换。接下来,以求三角形ABC关于直线Ax+By+C=0对称的三角形A'B'C'为例:

具体步骤:

(1)求出直线与y轴的交点坐标(0,-C/B),将三角形向下平移C/B,得出第一个矩阵T1。

,变换后结果为

(2)标记直线与x轴的夹角为α角,将三角形顺时针旋转α角,得出第二个矩阵T2。

,变换后结果为

(3)对三角形求关于x轴对称,得出第三个矩阵T3。

,变换后结果为

当前,直线Ax+By+C=0是与x轴重合的,我们接下来需要将它变换到原来的位置。

(4)逆时针旋转α角,得出第四个矩阵T4。

,变换后结果为

(5)最后向上平移C/B,得出第五个矩阵T5。

,变换后结果为

(6)最后将所有矩阵相乘,可以求出组合变换矩阵。

3、Transform3D类

通常一个Transform3D类的对象是一种内部表达为4×4的双精度类型的矩阵。一个Transform3D类的对象用来执行平移、旋转、变比例等坐标变换

4、TransformGroup类

所有表示各种几何变换的Transform3D类的对象必须包含在一个TransformGroup类的对象中,表示对在该TransformGroup类的对象中的三维图形所进行的坐标变换。

如果表示一种几何变换的Transform3D对象没有加入到该TransformGroup类的对象中,则该变换对在该TransformGroup类的对象中的三维图形不起作用

5、世界坐标系、观察坐标系与Java3D显示器坐标系

6、透视投影、平行投影及其计算

透视投影利用相似三角形原理计算。

平行投影——就是求三视图

7、隐藏线、隐藏面消除算法

当给定视点与观察方向后,对视点来讲,并不是所有的面都可见,可见面是由视点与观察方向及面的法向量决定。只需显示可见的面,无须显示隐藏的面,这种算法叫做隐藏面消除算法。

隐藏面的消除与隐藏线消除有时是相互关联的。由隐藏线所围成的面是隐藏面,两个隐藏面所共有的线为隐藏线。

8、Z Buffer隐藏面消除算法

在显示器的像素点阵建立两种缓冲存储单元阵列:Z Buffer 和C Buffer阵列

简单地说:从视点出发通过每个像素点发出一条射线,Z Buffer阵列存储距离视点最近的多边形与射线交点z坐标C Buffer阵列存储对应的交点所在面颜色

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
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)裁剪过程可以重复进行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

加油呀兄弟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值