三维图形变换3D Transformation
IDL教程_07_IDL三维视图

Volume Visualization
ISOSURFACE –拓扑连续三角分解产生 IVOLUME - ivolume
Volume Visualization
PROJECT_VOL – volume投影到平面上
Volume Visualization
Surfaces and Contours
POLAR_CONTOUR – 极坐标轮廓线
Surfaces and Contours
SHADE_SURF – 生成网格数据的阴影曲面
Surfaces and Contours
SHADE_SURF_IRR – 非规则网格数据的阴 影曲面
Surfaces and Contours
EXTRACT_SLICE – 提取平面切片
Volume Visualization
IDLgrVolume – 3DVolume对象 IDLgrVRML – 保存为VRML 2.0 格式文件 XOBJVIEW_WRITE_IMAGE – XOBJVIEW中
的对象写入图像文件
Volume Visualization
3D Transformations & Scene Setup
SCALE3 – 设置3D绘图的区域和视角
3D Transformations & Scene Setup
T3D – 进行3D变换操作
T3D, /RESET, ROT = [ 30,0,0], PERS = 1. T3D, /RESET, TRANS = [-.5,-.5,0], ROT =
PARTICLE_TRACE – 向量场跟踪粒子路径 STREAMLINE – 路径可视化
基于Directx的三维图形立体变换的实现

西南科技大学毕业设计(论文)题目名称:基于Directx的三维图形立体变换的实现年级:2003级■本科□专科学生学号:20035247学生姓名:宋彦宾指导教师:蒋体钢学生单位:信息工程学院技术职称:副研究员学生专业:通信专业教师单位:信息工程学院西南科技大学教务处制基于Directx的三维图形立体变换的实现摘要:目前在世界上三维图形大量的被应用到日常生活中,它是许多媒体应用程序和游戏的主体部分,所以掌握最新的三维技术是很有必要的。
本文首先研究了利用C#和Directx9编程以及立体几何技术,数学变换和几何图形技术来制作三维立体图形的方法,掌握了利用API接口创建窗口实现消息传递以及对坐标系,缓存,矩阵坐标变换的知识。
其次,利用3DS Max创建三维立体图形,加载到所编写的三位图形立体变换程序中,并进行调试。
设计主要完成了对绘制出来的电视机的平移,旋转和缩放技术的处理,最后通过程序对图形进行渲染使其更具有可观性。
关键词:API;Visual C#.Net;Direct3D;3DS MaxThe Realization of Three-Dimensional Graph Three-Dimensional Transformation Based on DirectxAbstract:In the world of nowadays, the three -dimensional graphics are applying to daily life in a large number. It is the main part of the game and applications of many media. So, it's necessary to master the latest 3-D technology.Firstly, this thesis researches on using C # and the Directx9 programming as well as the three-dimensional geometric technology, the mathematical manipulation and the geometric figure technology to manufacture the three-dimensional graphics. Mastering the use of the API interfaces to create a window that can realize message transmission. Acquainting the knowledge on the coordinate system, the texture and the matrix coordinate transformation. Secondly, the 3D models of the system were created by 3dsmax, then prepared to load the stereo 3D graphics transformation process, and debugging. The translation, the rotation and scaling of TV which have mapped out were completed in this design. Finally, by embroidering in procedure, the graphics were more arresting.Key words:API, Visual C#.Net, Direct3D, 3DS Max目录第1章绪论 (1)1.1 三维技术的现状 (1)1.2 编程语言简介 (2)1.3 三维图形立体变换的设计分析 (2)1.3.1 设计需求分析 (2)1.3.2 设计性能要求 (2)第2章DirectX9.0技术 (3)2.1 DirectX9.0的概念 (3)2.1.1 Direct3D的构架 (3)2.1.2 设计规划 (4)2.2 DirectX 9.0函数简介 (5)2.2.1 窗口类的处理 (6)2.2.2 创建IDirect3D接口 (7)2.2.3 创建IDirect3DDevice界面 (8)2.2.4 开始渲染 (9)2.2.5 顶点属性与顶点格式 (10)2.2.6 顶点缓冲 (10)2.2.7 索引缓冲 (12)2.2.8 D3D中的图元简介 (13)2.2.9 向量 (14)2.2.10 矩阵的操作 (15)第3章主体程序的设计与实现 (19)3.1 三维图形立体变换的设计 (19)3.2 三维图形立体变换设计具体实现 (19)3.2.1 利用.X文件图像获取 (19)3.2.2 利用画点画线函数生成图像 (23)3.2.3 图像的缩放 (33)3.2.4 图像的旋转 (34)3.2.5 图像保存为.TXT文挡 (37)3.2.6 渲染功能实现 (38)3.2.7 光源和观察矩阵的实现 (39)3.2.8 键盘的控制 (39)3.3 程序运行的调试 (40)总结 (41)4.1 设计开发小结 (41)4.2 项目改进方向和未来展望 (41)致谢 (42)参考文献 (43)附录 (44)第1章绪论1.1 三维技术的现状在计算机屏幕上绘图的最基本单位是点,点构成线,线又构成多边形,还可以朝空间发展,构成立体图行,如正方体、立方体、锥体、球等。
深入理解CSS变形transform(3d)

深⼊理解CSS变形transform(3d)前⾯的话 本⽂将详细介绍关于transform变形3D的内容,但需以了解为基础。
3D变形涉及的属性主要是transform-origin、transform、transform-style、perspective、perspective-origin、backface-visibility坐标轴 在了解透视之前,⾸先要先了解坐标轴。
3D变形与2D变形最⼤的不同就在于其参考的坐标轴不同。
2D变形的坐标轴是平⾯的,只存在x轴和y轴,⽽3D变形的坐标轴则是x、y、z三条轴组成的⽴体空间,x轴正向、y轴正向、z轴正向分别朝向右、下和屏幕外透视 透视是transform变形3D中最重要的内容。
如果不设置透视,元素的3D变形效果将⽆法实现。
//下⾯以rotateX()旋转函数为例,rotateX(45deg)表⽰元素以X轴⽅向为轴沿顺时针旋转45⾓度//左图是⽆变形和透视样式的原始效果,中图是设置变形和透视样式的效果,右图是设置变形但未设置透视样式的效果 由以上三个图可说明,如果不设置透视,那么浏览器会将元素的3D变形操作投射垂直到2D视平⾯上,最终呈现出来的只是元素的宽⾼变化 要深⼊了解透视,需要了解观察者、被透视元素和变形元素这⼏个概念。
⾸先是变形元素,顾名思义,就是进⾏transform3D变形的元素,主要进⾏transform、transform-origin、backface-visibility等属性的设置 观察者是浏览器模拟出来的⽤来观察被透视元素的⼀个没有尺⼨的点,观察者发出视线,类似于⼀个点光源发出光线 被透视元素也就是被观察者观察的元素,根据属性设置的不同,它有可能是变形元素本⾝,也可能是它的⽗级或祖先元素(后⾯会详细介绍),主要进⾏perspective、perspective-origin等属性的设置透视距离 透视距离perspective是指观察者沿着平⾏于z轴的视线与屏幕之间的距离,简称视距perspective 值: none | <length> 初始值: none 应⽤于: ⾮inline元素(包括block、inline-block、table、table-cell等) 继承性: ⽆ [注意]透视perspective不可为0和负数,因为观察者与屏幕距离为0时或者在屏幕背⾯时是不可以观察到被透视元素的正⾯的 [注意]透视perspective不可取百分⽐,因为百分⽐需要相对的元素,但z轴并没有可相对的元素尺⼨【1】⼀般地,物体离得越远,显得越⼩。
计算机图形学之图形变换

4 T
3
2 p
1
0
012 34 567 8
线段和多边形的平移可以通过顶点的
平移来实现。同样线段和多边形的其它几 何变换也可以通过对顶点的几何变换来实 现。
2. 旋转变换(Rotation) 二维旋转有两个参数:
旋转中心: 旋转角:
?
6 P’
5
4
3
P
2
1
0
012 34 567 8
设OP与x轴的夹角为 则:
由于采用齐次坐标矩阵表示几何变换, 多个变换的序列相应地可以用矩阵链乘来表 示。
需要注意:先作用的变换其矩阵在右边, 后作用的变换其矩阵在左边。
变换函数
平移变换 void glTanslate{fd}(TYPE x, TYPE y, TYPE z);
旋转变换 void glRotate{fd}(TYPE angle, TYPE x, TYPE y, TYPE z); 绕矢量v=(x,y,z)T逆时针方向旋转angle指定的角度。 旋转角度的范围是0~360度。当angle=0时, glRotate()不起作用。
二维旋转有两个参数: 旋转中心: 旋转角:
上述变换可以分解为三个基本变换:
•平移:
•旋转:
•平移: 回原位。
使旋转中心移到坐标原点; 使旋转中心再移
二维旋转有两个参数: 旋转中心: 旋转角:
因此上述变换可以写成矩阵乘积形式:
4. 5 基本三维几何变换(Basic three-dimensional geometric transformation)
1. 矩阵表示(Matrix representation) 前面三种变换都可以表示为如下的矩
阵形式
6.2三维图形投影变换技术1

P(x,y,z)
(x y z 1)*
0 1 0
=(x’y’z’1)
0 0 1 0 0 0 0 1
平行投影方向为Y轴 投影面为 平行投影方向为 轴,投影面为o-xz面, 面
则空间中任意一点P(x,y,z)投影到 投影到o-xz面上获 则空间中任意一点 投影到 面上获 得点P’(x’,y’,z’)的关系是 得点 的关系是
•x’=x •y’=y •z’=0 用矩阵表示: 用矩阵表示:
1 0 0 0 0
(x y z 1)*
三维坐标
0 1 0
=(x’y’z’1)
投影后的 二维坐标
0 0 0 0 0 0 0 1
变换矩阵
•投影方向:x轴,投影面 面 投影方向: 轴 投影面yz面 投影方向 •投影方向:y轴,投影面 面 投影方向: 轴 投影面xz面 投影方向 •投影矩阵为多少? 投影矩阵为多少? 投影矩阵为多少
投影视点E-观察者的眼睛 投影面xy面 透视投影(投影视点 观察者的眼睛 投影面 面) 投影视点 观察者的眼睛,投影面
投影方法:从视点E经过形体的各个点,向投影平 投影方法 视点 经过形体的各个点, 经过形体的各个点
画射线,这些射线和投影面o-xy的交点形成投影像 的交点形成投影像 面画射线,这些射线和投影面 的交点 (也就是具有真实立体感的二维图形)。
前面讲的内容解决了如何在计算机中定义一个立体形体, 前面讲的内容解决了如何在计算机中定义一个立体形体 ,下面 我们来解决第二个问题: 我们来解决第二个问题:
•如何将三维形体作为二维图像 如何将三维形体作为二维图像 如何将三维形体作为二 •在图像显示器等输出装置上 在图像显示器等输出装置上 在图像显示器 •表示出来? 表示出来? 表示出来
第5章图形变换2

2015/12/17
计算机图形学演示稿 纪玉波制作 (C)
23
5.3.1 投影变换分类(Projection transformation classification) 在投影变换中,观察平面称为投影面(projection plane )。 将三维图形投影到投影面上,有两种基本的投影方式,即平 行 投 影 (parallel projection) 和 透 视 投 影 (perspective projection)。在平行投影中,图形沿平行线变换到投影面上; 对透视投影,图形沿收敛于某一点的直线变换到投影面上, 此点称为投影中心(center of projection),相当于观察点,也 称为视点(viewing position)。投影线与投影面相交在投影面 上形成的图象即为三维图形的投影。 平行投影和透视投影区别在于透视投影的投影中心到投 影面之间的距离是有限的,而平行投影的投影中心到投影面 之间的距离是无限的。当投影中心在无限远时,投影线互相 平行,所以定义平行投影时,给出投影线的方向就可以了, 而定义透视投影时,需要指定投影中心的具体位置。
计算机图形学演示稿 纪玉波制作 (C)
18
5.2.4 对称变换(Reflection) 三维对称变换可以是关于给定对称轴的或者是关 于给定对称平面的变换。关于给定对称轴的对称变换 等价于绕此轴旋转 180°,可以直接使用已讨论过的 相对于轴线的旋转变换公式。关于给定对称平面的对 称变换其最简单的是对称于坐标平面的变换。比如, 空间一点 P(x,y,z) 对XY 坐标平面对称变换时,只需改 变z 坐标的正负号,其它两坐标不变,因此,其变换 的矩阵表示为:
三维坐标变换ppt课件

x, y, z,1 x, y, z,1T x0, y0,z0 R
说明:变换矩阵TR将一个直角坐标系变换为另一个 坐标系。即使一个坐标系是右手坐标系,另一个为 左手坐标系,结论依然成立。
26
习题7
7-1 对于点P(x,y,z) ,(1) 写出它绕x 轴旋转 角,然后再绕y轴旋 转 角的变换矩阵。 (2)写出它绕 y 轴旋转 角,然后再绕 x 轴 旋转 角的变换矩阵。所得到的变换矩阵的结果一样吗? 7-2 写出绕空间任意轴旋转的变换矩阵。
0 a
1 0
a2 b2 c2
0
0
a
0
a2 b2 c2
0
0
b2 c2
0
a2 b2 c2
ห้องสมุดไป่ตู้
0
1
AV Rx Ry
17
利用这一结果,则绕任意轴旋转的变换矩阵可表示为:
y
P2 •
P1 • x
z
y
• P’2
P• ’1
x
z
1) T
y
P• ’1
0 sz
0 0
0 0 0 1
x y
x xsx , y ysy , z zsz 其中 sx , sy , sz 为正值。
4
(2) 相对于所选定的固定点的比例变换
z
z
(xf,yf,zf)
(1)
(xf,yf,zf)
y (2)
y
x z
x yz
(3) (xf,yf,zf)
0
0
0 0 1 0
tx ty tz 1
C++3D图形变换(含源码,下载后可复制黏贴使用)

实验三 3D图形变换一.实验目的:掌握3D图像的变换,了解多数的3D变换,平移,旋转等几何变换,还有投影变换等知识。
二.实验原理:3D图像的移动,比例变化,旋转等几何变换算法原理及各种投影变换算法原理。
三.实验步骤:一.建立MFC单文档程序,用来编写3D变换。
二.建立Mainframe,并设计,添加相应的ID及映射函数。
三.实验的主要代码:1、设计3维图形平移变换算法的实现程序;void CMyView::OnTranslation(){m_Select=SEL_TS;m_str="平移";CBaseClass my1; //构造新的CBaseClass对象int i,j;for ( i=1;i<=4;++i){for ( j=1;j<=4;++j)my1.A[i][j]=0;}my1.A[1][1]=1;my1.A[2][2]=1;my1.A[4][4]=1;my1.A[3][3]=1;my1.A[4][1]=20; //x轴方向上平移my1.A[4][2]=28; //y轴方向上平移my1.A[4][3]=28; //z轴方向上平移my1.Draw();}2、设计3维图形缩放变换算法的实现程序;void CMyView::OnScalingS(){m_Select=SEL_MO;m_str="整体变比";CBaseClass my1; //构造新的CBaseClass对象int i,j;for ( i=1;i<=4;++i){for ( j=1;j<=4;++j)my1.A[i][j]=0;}my1.A[1][1]=1;my1.A[2][2]=1;my1.A[3][3]=1;my1.A[4][4]=0.5;my1.Draw();}void CMyView::OnScalingXyz(){m_Select=SEL_MO;m_str="XYZ变比";CBaseClass my1; //构造新的CBaseClass对象int i,j;for ( i=1;i<=4;++i){for ( j=1;j<=4;++j)my1.A[i][j]=0;}my1.A[1][1]=2; //x轴方向上比例my1.A[2][2]=1; //y轴方向上比例my1.A[3][3]=2; //z轴方向上比例my1.A[4][4]=1;my1.Draw();}3、设计3维图形旋转变换算法的实现程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果I是单位阵,则AxI = IxA = A I具有如下形式:
方阵的逆和行列式的值
方阵A的逆记为A-1:A-1A=AA-1=I 如果方阵对应的行列式的值det(A)=0,
则A不可逆 如果A是3x3的方阵,则
游戏中的矩阵
三维图形学中一般使用4x4矩阵
• 左手坐标系:判断方法类似,用左手
平移
利用平移矩阵,将点V=(x,y,z)T平移至 V’=(x+Tx,y+Ty,z+Tz)T处,表示为V’=V+T
缩放
利用缩放矩阵,将点V=(x,y,z)T缩放 (d1,d2,d3)倍
其中对角线上的元素表示对应坐标系分 别放大(di>1)或者缩小了(di<1)的量
float IN_41, float IN_42, float IN_43, float IN_44) {
_11=IN_11; _12=IN_12; _13=IN_13; _14=IN_14;
_21=IN_21; _22=IN_22; _23=IN_23; _24=IN_24;
_31=IN_31; _32=IN_32; _33=IN_33; _34=IN_34;
平行投影
透视投影
投影过程
投影:n维空间上一点变换至m(<n)维空 间
m=n-1且n=3的情况
Q
P
平行投影
将物体从三维场景投影到屏幕 投影矩阵:
Z=0 plane
正交相机模面 ✓ 投影矩阵:
focus
eye
Z=0 plane
标准透视相机模型(I)
相机变换
将世界坐标系中的一点变换至照相机坐 标系
可以分成平移和旋转两部分
参数确定
用户给出C、N、V,U通过下面的公式 计算:U=NXV,则N、U和V组成一个左 手坐标系
一般地,用户大致给出V的方向,记为 V’,(V’不需要垂直于N),然后计算V :
投影变换
视域、投影方式、屏幕分辨率 投影物体首先与视域求交决定可见部分
V1和v2的叉积是一个新的向量v,它与 v1和 v2都垂直,其范数为:
属性:
axb
b
area=|axb|
a
叉积与点积的区别
两个向量的点积是一个数 两个向量的叉积仍然是一个向量
点与向量的坐标系统
坐标系统由三个正交的向量 i, j, k 以及原点O组成. 向量的表示:
点的表示:
k
O
j
i
_41=IN_41; _42=IN_42; _43=IN_43; _44=IN_44;
}
};
三维变换
一个变换通常用4x4矩阵表示. 对一个点或者向量进行变换等价于将一个矩阵乘以该点或向量的齐
次坐标. 向量的嵌套: 如矩阵乘法
左手坐标系-右手坐标系
• 右手坐标系:当右手四指沿x轴至y轴方向握紧,拇指 所指的方向即为+z方向(缺省坐标系)
全局坐标系 所有物体组成一个场景,场景坐标系称
为世界坐标系 所有物体必须变换至该坐标系,以确定
彼此之间的相对空间位置 将物体放至场景内等价于定义一个从物
体局部坐标系至世界坐标系的变换矩阵 场景需要定义光照
图形流水线中的照相机坐标系 统
照相机坐标系统决定照相机参数和可见 域
必须包括
◦ 视点位置 ◦ 视线 ◦ 视点坐标系 ◦ 投影平面 ◦ 视域 ◦ 其他(可选)
v1+v2 v2
v1
q=p+v v p
p1 v p2
向量几何的其他操作
线性混合: 长度与距离:
单位向量: 向量归一化:
向量几何:点积
✓ 定义: ✓ 属性:
✓ 向量之间的夹角:
✓ 垂直向量:
a
q
b
向量几何:投影
向量投影:
v1 v2
P>0
投影与坐标系
v1 v2
P<0
k
j i
向量几何:叉积
旋转的。因此首先要将物体平移至原点 ,进行旋转,再平移回来。
沿平行坐标轴的直线旋转物体
如何得到变换矩阵:
◦ 将物体平移至原点 ◦ 绕坐标轴旋转 ◦ 将物体重新平移至其原先的位置
举例
将盒子绕平行于z轴且经过P=(Tx,Ty,Tz)T 点的直线旋转
初始状态
结束状态
举例(续)
平移至原点
旋转
再平移回来
透视变换图例
仿射投影
A
投影平面
B
A’
B’
C(视点,即相机位置)
投影轨迹
透视变换图例
透视变换图例
透视变换规则
利用相似三角形定理,有:
用齐次坐标表示:
透视变换矩阵
给定
其中
背面剔除
将多边形的朝向与视点或投影中心相比 较,去除那些不可见多边形
可见性测试在视见空间内进行。计算每 一个多边形的法向,并检查法向与视线 方向点积后值的符号
旋转
矩阵R是旋转矩阵,如果R的转置等于R 的逆,即RTR=RRT=I
每个矩阵R对应一单位长度的旋转轴U 和旋转角度q。该对应并不是唯一的, 例如-U也是对应R的旋转轴
绕x轴旋转
当点绕x轴以逆时针方向(从x轴正方向 向原点看)旋转q角时,旋转矩阵为:
y
x z
绕y轴旋转
当点绕y轴以逆时针方向旋转q角时,旋 转矩阵为:
空间坐标系到齐次坐标系的转换
点的齐次坐标表示
齐次向量!坐标形式(w0)
几何求交
线段求交 ◦ 平行? ◦ 求交点的计算
通过三个点的园: 主要任务是计算中心点
线与线求交、线与面求交: ◦ 参数解 ◦ 可用于裁剪
线与多边形求交 ◦ 边界计算 ◦ 光线与多边形求交
矩阵
矩阵是n个向量的并列表示
矩阵的加法
将矩阵对应的元素直接相加
矩阵减法
将矩阵对应的元素直接相减
矩阵与向量的乘法
矩阵与向量相乘
注意:矩阵的列数必须与向量的行数相 等
矩阵乘法
两个矩阵的乘法可以分解为第一个矩阵 与第二个矩阵中的每一列向量的乘法
矩阵乘法
如果A和B分别为mxp以及pxn大小的矩 阵,则AxB为mxn矩阵
矩阵乘法:
Point3数据结构
struct Point3 { Union { struct { float x,y,z; //分量形式 }; float v[3]; // 数组形式 };
Point3() {};
//缺省构造函数
Point3 (float X, float Y, float Z) {x = X; y=Y; z=Z}
三维图形变换3D Transformation
2020年4月25日星期六
上节课程回顾
向量、矩阵、平面以及相应的数学操作 三维点、齐次坐标和变换矩阵 三维绘制流程 三维绘制中的变换
本次课程主要内容
三维绘制流程 三维绘制中的变换 照相机系统和相机模型 视域、背面剔除和裁剪
学习方法
课堂上:理解概念
CMY – 常用于打印 加法颜色系统: R+G+B=White CRT 显示器的基本元素
显示器与缓冲区
彩色CRT包含颜色点阵的数组-象素
◦ RGB 三元组 ◦ R, G, 和B 由每个象素单独控制 ◦ 每个分量8个比特
缓冲区存储将显示在显示器上的内容 一般在显卡内存中
绘制流程
标准的绘制流程由一系列计算组成 输入是:多边形 输出是保存在缓冲区的图像 主要涉及的操作是:三维变换与光照!
齐次坐标
一个统一的点与向量表示方法 ◦ 向量:
◦ 点:
统一的形式:
齐次坐标
非齐次坐标
齐次坐标
右边的四元组称为齐次坐标
点的空间坐标与齐次坐标
三维空间上的点(x,y,z)T可以表示为四维 空间中的一个齐次点(x,y,z,w)T,其中 w=1
用齐次坐标表示空间中的点,能够方便 进行各种运算。同样的,可将矩阵写作 齐次形式,即将原来的3x3大小的矩阵 扩充为4x4大小的矩阵。例如,I的齐次 形式为:
背面剔除
• 如果法向指向物体外部,则可见性的判断条件为: 其中Np为法向,N为视线方向
视域体裁剪
当且仅当视域体内的物体将被投影. 决定物体的哪一部分将被投影,哪一部
分被剔除的过程叫做裁剪.
Z=0 plane
视域体裁剪
三维物体裁剪
用视域四棱锥对物体进行裁剪
◦ 把一个多边形相对于视域四棱锥的每个裁 剪面进行裁剪测试
向量几何基础
所有点和向量都相对于某个坐标系统定义。
– 标量:数值、实数等.
–
点:二维或者三维位置,表示了几 何点在三维坐标系统中的位置。
– 向置量:带长度的有向线段,无物理位
Z
V
V
P
Y
X
向量
向量是一列数字,表示如下:
向量几何:基本操作
加法: 点与向量的加法: 点的减法: 向量缩放
课后:阅读相关资料、书籍
最好是自己去推导一遍: 我们课程主页上公布每次课的资料
参考书
计算机游戏程序设计。电子工业出版社 。
计算机图形学算法基础 科学出版社
真实感图形学算法基础 科学出版社
OpenGL教材
颜色
可见光的波长 400-780 nm 三色原理用三种颜色表示:R,G,B. 减法颜色系统: Cyan, Magenta, Yellow
//带参构造函数
//… 更多 };
Plane3数据结构
struct Plane3 { Point3 n; float d;
// 平面法向 //原点垂直法向距离
Plane3() {} //缺省构造函数