-
OpenGL顶点缓冲对象(VBO)
OpenGL是按照客户机-服务器模式设计的,在OpenGL需要数据的任何时候,都必须把数据从客户机内存传输到服务器。如果数据并没有修改,或者客户机和服务器位于不同的计算机(分布式渲染),数据的传输可能会比较缓慢,或者是冗余的。当我们使用顶点数组时,可以把单个数组从客户内存(CPU可以访问)传输到图形硬件。OpenGL2.1开始,增加了顶点缓冲区对象(Vertex Buffer Object)的特性,这个特性允许我们按照类似于管理纹理的方式来管理顶点数组数据,相比于glBegin/glEnd这种方式,顶点缓冲对象更加高效,而且顶点缓冲区对象要更灵活。
-
第一个OpenGL程序
忽然开始对OpenGL感兴趣了。便去看了一下 ogldev 上的tutorial给的demo。
OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维/二维图像,是一个功能强大,调用方便的底层图形库。
-
Lazy Evaluation 的原理与实现
Lazy Evaluation 是Haskell程序的求值方式。当把一个表达式与一个变量绑定时,这个表达式并没有被立即求值,而是当它的结果需要被其他的计算用到时才会求值。因此,在调用函数时,参数也不会在调用前求值, 而是当它的值被用到是才会求值。Technically, lazy evaluation means call-by-name plus Sharing.
-
Haskell 构造Types和Typeclasses
代数数据类型(Algebraic Data Type)的定义:
In computer programming, particularly functional programming and type theory, an algebraic data type is a kind of composite type, i.e. a type formed by combining other types. Two common classes of algebraic type are product types—i.e. tuples and records—and sum types, also called tagged or disjoint unions or variant types.
-
Scala 公开课笔记
Coursera上的瑞士洛桑理工大学Scala函数式编程原理(Functional Programming Principles in Scala)课程笔记。
-
将视频作为网页背景
一些门户网站采用视频作为网页背景,具有很好的展示效果,而随着HTML5技术的发展和浏览器支持程序的提升,采用视频作为网页背景也变得越来越容易。
技术分析
CSS里的
background-image
属性只能使用图片、SVG、颜色或渐变色。但从技术讲,我们是可以伪造出一种效果,让视频以背景的角色出现在其它HTML元素后面。这其中的难点是视频要填充整个浏览器页面,而且要响应浏览器窗口大小的变化。视频作为网页背景,需要考虑一下这几个问题:
- 作为背景的视频应该设置为自动播放(set to
autoplay
),而默认状态下应该是关闭声音(视频里面最好不含声音)。 - 背景视频应该有个替代图片,当浏览器不支持这种HTML5技术、视频格式时用图片替代。
- 视频长度很重要(12-30秒之间)。
- 视频的体积应很小,尽量的压缩。同时,它需要在不同尺寸设备上自动的适应屏幕大小。如果有可能,应该使用JavaScript控制对不同的屏幕大小加载不同分辨率的背景视频。
- 作为背景的视频应该设置为自动播放(set to
-
用Lex和Yacc实现解释器
语法树是句子结构的图形表示,它代表了句子的推导结果,有利于理解句子语法结构的层次。简单说,语法树就是按照某一规则进行推导时所形成的树。不论什么语言,语法结构总是那几种,可以想象任何程序体都可以解释成一棵语法树,语法树的本质是递归,很显然Yacc文法的核心思想也是递归。
一棵语法树包括了一个句型的所有可能的推导过程。通过Lex,Yacc和语法树的结合,可以很方便地来实现一个微型的解释器程序(interpreter)。
-
Lex和Yacc
Lex 代表 Lexical Analyzar, Yacc 代表 Yet Another Compiler Compiler。
-
BNF范式
BNF(Backus-Naur Form)是描述编程语言的文法。巴科斯范式是一种用于表示上下文无关文法的语言,上下文无关文法描述了一类形式语言。
自然语言存在不同程度的二义性。这种模糊、不确定的方式无法精确定义一门程序设计语言。必须设计一种准确无误地描述程序设计语言的语法结构,这种严谨、简洁、易读的形式规则描述的语言结构模型称为文法。
-
正则表达式检测质数
一个可以监测所有质数的正则表达式:
^1?$|^(11+?)\1+$
2015-07
Subscribe via RSS