- 博客(15)
- 资源 (21)
- 收藏
- 关注
原创 计算机图形学(四)几何变换_4_二维复合变换_4_二维刚体变换
如果一个变换矩阵仅包含平移和旋转参数,则它是一个刚体变换矩阵(rigid-body transforma-tion matrix)。二维刚体变换矩阵的一般形式为矩阵1:其中,4个元素rjk是多重旋转项,元素trx和try是平移项。坐标位置的刚体变化有时也称为刚体运动(rigid_motion)变换。变换后坐标位置的所有角度和距离都不变化。此外矩阵1具有其左上角的2x2矩阵是一正交矩阵(orthogonal matrix)的特性。这说明,假如将子矩阵的每一行(或每一列)作为一个向量,那么两个行向量(rxx,
2017-04-26 14:54:11 4426
原创 计算机图形学(四)几何变换_4_二维复合变换_3_通用二维复合变换和计算效率
因此,实际上变换坐标位置仅需完成4次乘法和4次加法。一旦把单个矩阵连接起来计算出复合矩阵的元素值,这就是任何变换序列所需计算的最大数目。假如没有合并,那么每次都要使用一个单独的变换,则计算的数目将大大增加。因此,变换操作的有效实现是先形成变换矩阵,合并所有变换序列,然后用等式2计算变换的坐标。在并行系统上,使用等式1的复合变换矩阵而直接进行矩阵相乘也可以有相同的效果。 由于旋转计算需要对每个变换点进行三角求值和多次乘法,因而在旋转变换中的计算效率就成为十分重要问题。在动画及其他包含许多重复
2017-04-25 16:43:20 2158
原创 Lua内置库的实现(一)_string模块
Lua的string库相较其它许多动态语言的string库来说,可谓短小精悍。不到千行C代码就实现了一个简单使用的字符串模式匹配模块。虽然功能上比正则表达式有所欠缺,但考虑到代码体积和功能比,这应该是一个相当漂亮的平衡(C 语言社区中常用的正则表达式库PCRE的个头整体比lua的实现还要大好几倍)。若需要更强大的字符串处理功能,Lua的作者之一Roberto给出了一个比正则表达式更强大的选择LPEG 6。有这一轻一重两大利器,在Lua社区中,很少有人再用正则表达式了。string模块实现在lstrlib.c
2017-04-22 18:02:57 2092
转载 C#常用函数表
1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前日 int 日=currentTime.Day; 1.5 取当前时 int 时=currentTime.Hour;
2017-04-21 17:01:32 682
原创 OpenGL函数_ glColor函数颜色
在OpenGl中设置颜色,一般可以使用glColor3f()。从函数名字就可以看出,它的参数应该有三个,类型是float型的。另外一点是它的参数值的范围是[0.0,1.0]一般的,可以将这三个参数值视为颜色的成分。0.0 -- > 不使用颜色成分;1.0 -- > 使用颜色的最大值
2017-04-13 19:17:10 9273 1
原创 Lua内置库的实现(一)_math模块(二)_math模块API实现
math模块内的各个数学函数的实现中规中矩,就是使用的Lua手册里给出的API来实现的。 Lua的扩展方式是编写一个原型为int lua_CFunction (lua_State *L)的函数。L对于使用者来说,不必关心其内部结构。实际上,公开API定义所在的lua. h中也没有lua_State的结构定义。对于一个用C编写的系统,模块化设计的重点在于接口的简洁和稳定。数据结构的细节和内存布局最好能藏在实现层面,Lua的API设计在这方面做了一个很好的示范。这个函数通常不会也不建议被C程序的其它部分直接调用
2017-04-12 19:25:10 1848
转载 OpenGL单缓冲与双缓冲的区别
单缓冲,实际上就是将所有的绘图指令在窗口上执行,就是直接在窗口上绘图,这样的绘图效率是比较慢的,如果使用单缓冲,而电脑比较慢,你回到屏幕的闪烁。 双缓冲,实际上的绘图指令是在一个缓冲区完成,这里的绘图非常的快,在绘图指令完成之后,再通过交换指令把完成的图形立即显示在屏幕上,这就避免了出现绘图的不完整,同时效率很高。一般用OpenGL绘图都是用双缓冲,单缓冲一般只用于显示单独的一副非动态的图像
2017-04-07 10:50:55 4402
转载 OpenGL函数_ gl.glenable()详细介绍
glEnable 用于启用各种功能。功能由参数决定。与glDisable相对应。glDisable是用来关闭的。两个函数参数取值是一至的。参数说明:void glEnable(GLenum cap)GLenum 是unsigned int 类型cap 是一个取值。由值决定启用的功能键。各种功能请看参数cap的取值表
2017-04-07 10:42:06 15773 1
原创 OpenGL---GLUT教程(二) GLUT初始化
Void glutInit(int*argc,char**argv);//初始化Void glutInitWindowPositon(int x,int y);//窗口位置(它默认的是屏幕左上角),X: 距离屏幕左边的像素数。Y:距离屏幕上边的像素数,默认值都是-1。Void glutInitWindowSize(int width,int height); //设置窗口大小Void glutInitDisplayMode(unsighed int mode); // 定义显示方式Int glutC
2017-04-06 18:57:49 1564
原创 OpenGL_GLUT(一)_vs2013中配置gult库
GLUT 代表OpenGL Utility Tookit。Mark J.Kilgard 为了使OpenGL应用程序结构能够真正独立于窗口系统构思了GLUT库。感谢GLUT,使我们可以写程序而不必去学关于X windows或者微软自己的窗口系统。Kilgard在X windows上应用这个库,后来Nate Robins把它扩展到微软的窗口系统。
2017-04-06 18:20:25 1158
转载 opengl库中gl glu glut glaux的区别
OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库。gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库。gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。glut是基本的窗口界面,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨平台的,这就保证了我们编出的程序是跨平台的,如果用MFC或者Win32只能在windows操作系统上使用。选择OpenGL的一个很大原因就是因为它的跨
2017-04-06 16:26:59 1428
原创 Lua内置库的实现(一)_math模块(一)_从math模块看Lua的模块注册机制
Lua5.2自带了几个库,实现了一般应用最基本的需求。这些库的实现仅仅使用了Lua官方手册中提到的API,对Lua核心部分的代码几乎没有依赖,所以最易于阅读。阅读这些库的实现,也可以加深对Lua API的印象,方便我们自己扩展Lua。 注意:在看这个之前要先了解Lua和C之间的交换数据的机制,因为Lua和C之间交互有2个问题:1.动态和静态类型系统的不匹配,2.自动和手动内存管理的不一致。(Lua 与C调用点击连接) 数学库是最简单的一个。它导入了若干数学函数,和两个常量pi与huge。下
2017-04-05 20:38:51 1742
原创 Lua内嵌库概念
作为嵌入式语言,其实完全可以不提供任何库及函数。全部由宿主系统注入到State中即可。也的确有许多系统是这么用的。但Lua的官方版本还是提供了不少必要的库。尤其是一些基础函数如pairs,error,setmetatable,type等等,完成了语言的一些基本特性,几乎很难不使用。 而coroutine,string,table,math等等库,也很常用。Lua提供了一套简洁的方案,允许你自由加载你需要的部分,以控制最终执行文件的体积和内存的占用量。主动加载这些内建库进入lua_State
2017-04-05 16:12:31 960
原创 Lua代码翻译及预编译字节码
Lua在早期几乎都是被用来嵌入到其它系统中使用,所以源代码通常被编译成动态库或静态库被宿主系统加载或链接。但随着Lua的第三方库越来越丰富,人们开始倾向于把Lua作为一门独立语言来使用。Lua的官方版本里也提供了一个简单的独立解析器,便是lua.c所实现的这个。并有luac.c实现了一个简单的字节码编译器,可以预编译文本的Lua源程序。
2017-04-04 17:37:16 5530
原创 Lua代码风格
Lua使用Clean C[5](Clean C是标准C/C++的一个子集。它只包含了C语言中一些必要特性。这样方便把Lua发布到更多的可能对C语言支持不完整的平台上。比如,对于没有 ctype.h 的C语言编译环境,Lua提供了 lctype.c 实现了一些兼容函数。)编写的源代码模块划分清晰,大部分模块被分解在不同的 .c 文件中实现,以同名的.h文件描述模块导出的接口。比如,lstring.c实现了Lua虚拟机中字符串池的相关功能,而这部分的内部接口则在lstring.h中描述。
2017-04-01 11:47:13 912
第一人称射击游戏(Unity)
2015-09-17
Unity_模仿击打铝罐代码
2015-09-17
图片控件ImageView
2014-12-08
羽哥Time And DatePicker
2014-12-08
RadioButtonAndCheckboxDemo
2014-12-08
universal-image-loader-1.8.6-with-sources.jar
2014-12-05
android-support-v4.jar
2014-12-05
羽哥位移的血轮眼
2014-12-05
羽哥android动画-旋转+透明的血轮眼
2014-12-05
羽哥TabHostDemo
2014-12-02
羽哥RatingBarDemo
2014-12-01
羽哥SeekBarDemo
2014-12-01
羽哥SpinnerDemo
2014-12-01
微信飞机大战
2014-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人