pv3d, sandy, away3d的三维数学运算类

如果愿意研究三维数学的一些基础,欢迎下载pv3d, sandy, away3d的三维数学包:
下载三大数学包

如果没有任何图形数学基础,在阅读这篇之前,请至少阅读《三维图形成象的基本原理》点击链接
三维运算类是进入引擎程序开发的必要类。由于flash本身是个二维向量图型软件,自带的数学类比如3*3矩阵,碰撞等等都只能解决二维图型的各种描述和动态。

所以所有的flash3d都有Matrix3D,尤拉角,三维点,三维平面,AABB等等三维相关的运算。没有这些基本运算类,制作图形和动力引擎几乎寸步难行。为了能让更多人加入到flash3d提高开发的行列里,当然也为了避免一些要制作自己的flash3d引擎的朋友不用走那么多弯路,这次就介绍一下sandy,pv3d,away3D目前已有的基本三维数学类,其实都大同小异。(图形算法差不多都在这儿,别再自己写了哦)

Sandy的数学包:我比较喜欢sandy的数学包,完善且方便。
位置:sandy/math和sandy/core/data
目前有8个类:
三维矩阵:4*4的矩阵,用来乘除一个三维点来变换点的位置,最重要的数学类。(矩阵的一些初级知识请阅读《图形学原理 矩阵变换》
四元数:用于旋转的优秀算法。不会被万向锁,可以插值,且只用储存4个值的。和矩阵可转换。
向量数:向量的各种计算
点数:嗯,暂时可以不用管这个和上面那个有什么本质不同
颜色:各种颜色描述方式转换
快速数:不精确三角形算法
碰撞:各种解决碰撞的便利类
平面:描述一个无限大的平面,可以由三个点构成,也可以计算和这个平面相关的投射,点位置等等简便方法。

Pv3d的数学包:pv3d算法很丰富,目前除了8个基本数学类,还多了一个util包,专门方便处理一些特殊的情况。
位置:org/papervision3d/core/math
三维矩阵:4*4或4*3的矩阵,和各种相关运算。最重要的数学类。
四元数:用于旋转的优秀算法。不会被万向锁,可以插值,且只用储存4个值的。和矩阵可转换。
二维数:描述x,y这样的点
三维数:就是向量数,描述x,y,z这样的点
UV数:描述贴图在模型上的x,y位置,只不过叫u,v而已。
AABB:碰撞用立方体
球体碰撞:碰撞测试的球体
平面3D:描述一个无限大的平面,可以由三个点构成,也可以计算和这个平面相关的投射,点位置等等简便方法。


Away3D的数学包:Away3D看来少点,目前只有4个基本的数学类,但实际上基本功能都是有的,像UV,顶点这些在其它位置。
位置:away3d/core/math
三维矩阵:还是它
四元数:还是它
二维数:描述x,y这样的点
三维数:就是向量数,描述x,y,z这样的点
posted @ 2009-04-29 14:00  vily_雷  阅读(702)  评论(0)    收藏  举报