锦绣明天森林幼儿园:爱护狐狸之峰 的日志 — Windows Live

来源:百度文库 编辑:偶看新闻 时间:2024/05/02 02:26:08
Windows Live™主页设备SkyDrive移动主页下载全部服务
HotmailMessengerOffice照片MSN
登录
收件箱日历联系人发送电子邮件
最新的文档您的文档您的群
最新的照片您的相册您的照片共享照片
主页汽车理财电影资讯体育天气
联系人
个人资料
添加好友
SEA 的个人资料爱护狐狸之峰照片日志列表更多 留言簿好友
工具 发送私人消息订阅 RSS 源告诉好友添加为好友
帮助
日志
摘要
排列方式: 日期 类别
2011年 1月 2010年 12月 2010年 11月 2010年 10月 2010年 9月 2010年 8月 2010年 7月 2010年 6月 2010年 5月 2010年 4月 2010年 3月 2010年 2月 2010年 1月 2009年 12月 2009年 11月 2009年 10月 2009年 9月 2009年 8月 2009年 7月 2009年 6月 2009年 5月 2009年 4月 2009年 3月 2009年 2月 2009年 1月 2008年 12月 2008年 11月 2008年 10月 2008年 9月 2008年 8月 2008年 7月 2008年 6月 2008年 5月 2008年 4月 2008年 3月 2008年 2月 2008年 1月 2007年 12月 2007年 11月 2007年 10月 2007年 9月 2007年 8月 2007年 7月 2007年 6月 2007年 5月 2007年 4月 2007年 3月 2007年 2月 2007年 1月 2006年 12月 2006年 11月 2006年 10月 2006年 9月 2006年 8月 2006年 7月 2006年 6月 2006年 5月 2006年 4月
<< 第一页   < 上一页
6月28日
和狐狸一起学——OpenGL宝典2.7-2.11——其它功能函数
对于特定的某个集合体,有很多因素影响了它的绘制,例如光照,纹理等等。
我们把这类变量的集合称为管线的状态。OpenGL使用一种状态模型(或称为状态机)来追踪所以的OpenGL状态变量。故而状态机是一个抽象的模型,用来表示一组状态变量的集合。
例如光照,要么打开,要么关闭,一旦状态被设置,它就一直保持这个状态,直到其它函数对它进行了修改。
打开状态变量,可以使用下面这个函数:
void glEnable(GLenum capability);
关闭某个状态使用下面这个函数:
void glDisable(GLenum capability);
例如,打开光照:glEnable(GL_LIGHTING);  或者关闭光照: glDisable(GL_LIGHTING);
如果想知道一个状态是否被打开,还可以使用下面这个函数来测试:
GLboolean glIsEnabled(GLenum capability);
当然,不是所有的状态变量都是简单的打开或是关闭。许多OpenGL函数专门来用设置变量的值。OpenGL提供了一组查询函数,了一用来查询boolean型、int型、float型和double型变量的值。这4个函数的原型如下:
void glGetBooleanv(GLenum pname, GLboolean *params);
void glGetDoublev(GLenum pname, GLdouble *params);
void glGetFloatv(GLenum pname, GLfloat *params);
void glGetIntegerv(GLenum pname, GLint *params);
每个函数返回一个单值,或者是返回一个数组,把一些值存储到你所提供的地址中。
OpenGL还提供一种方便的机制保存一组范围内所有的状态值,并在将来恢复它们。堆栈就是一种方便的数据结构。
我们可以使用下面这个函数把一个状态值或是一组范围相关状态值压入属性堆栈中:
void glPushAttrib(GLbitfield mask);
使用下面的函数来进行弹栈:
void glPopAttrib(GLbitfield mask);
注意,这些函数的参数是个位段,也就是个位掩码,也就是说我们在向单个函数的参数传值的时候可以使用位操作来表示多个状态(操作符“|”)。例如:保存光照和纹理状态  glPushAttrib(GL_TEXTURE_BIT | GL_LIGHTING_BIT);
写程序就要考虑到出错的情况。编写健壮和行为良好的程序,离不开错误调试。OpenGL在内部维护了一组错误标志(共8个)。每个标志代表一种不同类型的错误。当一个错误发生时,与这个错误对应的标志就会被设置。要观察哪些标志被设置,可以调用函数glGetError函数:
Glenum glGetError(void);
可能错误不止一个,但是glGetError函数只返回一个值。所以你需要在一个循环中调用glGetError函数,持续检查错误,直到返回值是GL_NO_ERROR(没有错误)。
你可以使用GLU函数库的另外一个函数gluErrorString来获得一个关于这个错误的更详细的文字表述:
const GLubyte* gluErrorString(GLenum errorCode);
这个函数把glGetError函数的返回值作为它的参数,并返回一个静态字符串表述这个错误。
有时候,你想利用某个厂商提供的,该厂商的显卡所支持的独特的特性,来改进你的程序;或者你打算使用某些OpenGL的新特性,那么,你有必要知道这个厂商所提供的OpenGL的最低版本号。要查询OpenGL渲染引擎的厂商和版本号,可以利用GL函数库函数如下:
const GLubyte *glGetString(GLenum name);
返回一个静态字符串,描述GL函数库的相关的信息。
下面这个函数:
const GLubyte *gluGetString(GLenum name);
返回一个静态字符串,描述GLU函数库的相关的信息。
在3D图形算法中,我们常常要在性能和画面效果之间作出取舍。如果视觉上的感受是第一位的话,性能就要退而求其次了。一种OpenGL的实现常常包含了两种方法来执行一个任务,一种是快速方法,侧重于性能;一种是慢速方法,侧重于改进视觉质量。glHint函数允许你指定偏重于视觉质量还是偏重与速度。
void glHint(GLenum target, GLenum mode);
target指定你想要修改的行为类型,也就是说你要指定哪些模型或是其它什么的。
mode参数用来表示你希望是重视渲染速度还是重视更好的输出质量。
或者你只想使用默认的方式进行渲染。不过所有的OpenGL实现都不必在glHint函数调用上保持一致。在OpenGL中,这是唯一一个其行为完全依赖于厂商的函数。
OpenGL允许厂商通过它的扩展机制来向OpenGL API提供新的函数。其次,只要能被原有的OpenGL函数说确认,厂商可以添加型的标记或枚举定义。
使用新的标记或枚举定义,你只需要在项目中添加厂商所提供的头文件就可以了。厂商必须向OpenGL ARB注册它们的扩展。
检查扩展可以使用下面这个函数:
const char *szExtensions = glGetString(GL_EXTENSIONS);
这个字符串包含了由驱动程序说支持的所有扩展的名称。
要识别扩展是由哪个厂商提供,通常只需要观察它们的前缀就可以了,例如nVidia的前缀是NV_;IBM的前缀是IBM_;ATI的前缀是ATI_。
有些厂商的扩展因为得到了广泛的认同,其它厂商也会将它列入自己的支持范围。有时候,某个扩展得到了所有厂商的支持,那么这个扩展就具有了EXT_前缀,表示跨厂商的广泛支持。
最后还有一种ARB批准的扩展,这种类型的扩展通过了OpenGL ARB的审查并进行了辩论。但是这种扩展还未能进入OpenGL的核心规范。
Windows平台的OpenGL只包含了1.1版本,而今OpenGL已经出到2.0版本,这是万恶的微软的小人心态。这意味着在微软开发工具所包含的头文件中,用户无法使用新的OpenGL功能。
17:26 |添加评论 |阅读评论 (1) |固定链接 |写入日志 |OpenGL|ES
6月22日
和狐狸一起学——OpenGL宝典2.6——制作最简单的动画
#include
//这个程序是制作一个方块,在窗口内做镜面反弹
// 方块的初始位置和方块的尺寸,这里是使用的逻辑坐标系
GLfloat x = 0.0f;
GLfloat y = 0.0f;
GLfloat rsize = 25;
// 移动向量(每次移动的像素量)
GLfloat xstep = 1.0f;
GLfloat ystep = 1.0f;
// 记录窗口的尺寸
GLfloat windowWidth;
GLfloat windowHeight;
void RenderScene(void)
{
// Clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT);
// Set current drawing color to red
//           R     G       B
glColor3f(1.0f, 0.0f, 0.0f);
// Draw a filled rectangle with current color
glRectf(x, y, x + rsize, y - rsize);
//刷新绘图命令并进行交换。
//双缓冲,所有图形程序包最重要的特性之一。
//这个程序已经开始使用双缓冲了,注意看下面的glutInitDisplayMode函数。
//我们不再需要glFlush函数,因为我们执行双缓冲交换的时候,就隐形的执行了一次刷新操作。
//关于双缓冲看下面的注释。
glutSwapBuffers();
}
void TimerFunction(int value)
{
// 作镜面反弹
if(x > windowWidth-rsize || x < -windowWidth)
{
xstep = -xstep;
}
// Reverse direction when you reach top or bottom edge
if(y > windowHeight || y < -windowHeight + rsize)
{
ystep = -ystep;
}
//改变坐标
x += xstep;
y += ystep;
// 这是在窗口大小发生变化的时候,防止方块跑到窗口外面去。
//原点在窗口正中央
if(x > (windowWidth-rsize + xstep))
{
x = windowWidth-rsize-1;
}
else if(x < -(windowWidth + xstep))
{
x = -windowWidth -1;
}
if(y > (windowHeight + ystep))
{
y = windowHeight-1;
}
else if(y < -(windowHeight - rsize + ystep))
{
y = -windowHeight + rsize - 1;
}
// 用新的坐标重新绘制场景
glutPostRedisplay();
//这里我们再次定义了计时器,这种做法很像递归。
glutTimerFunc(30,TimerFunction, 1);
}
void SetupRC(void)
{
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
}
void ChangeSize(int w, int h)
{
GLfloat aspectRatio;
if(h == 0)
{
h = 1;
}
glViewport(0, 0, w, h);
//重置坐标
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
aspectRatio = (GLfloat)w / (GLfloat)h;
if (w <= h)
{
windowWidth = 100;
windowHeight = 100 / aspectRatio;
glOrtho (-100.0, 100.0, -windowHeight, windowHeight, 1.0, -1.0);
}
else
{
windowWidth = 100 * aspectRatio;
windowHeight = 100;
glOrtho (-windowWidth, windowWidth, -100.0, 100.0, 1.0, -1.0);
}
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
// Main program entry point
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
//把显示模式设置成双缓冲。
//双缓冲允许你在屏幕之外的缓冲区执行绘图代码,然后用一条交互命令把你绘制的图形立即显示在屏幕上
//好处是在绘制很复杂,需要较长时间绘制的图画时,用户绝对不会在屏幕上看到一副不完整的图画。只有
//在缓冲区绘制完整之后才会显示在屏幕上。
//第二个好处是使动画流畅。每个帧都在屏幕外的缓冲区绘制,待完成之后再显示。
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(800,600);
glutCreateWindow("Bounce");
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
//GLUT允许你注册这样一个函数,可以很方便的制作动画。我们使用glutTimerFunc来注册一个回调函数
//这个函数使得GLUT等待了30毫秒之后,执行TimerFunction函数。这个有些类似windows的计时器。
//不同的是,这个函数只执行一次,为了产生连续的动画,我们必须在TimerFunction函数中再设置一次。
glutTimerFunc(30, TimerFunction, 1);
SetupRC();
glutMainLoop();
return 0;
}
10:23 |添加评论 |阅读评论 (2) |固定链接 |写入日志 |OpenGL|ES
6月21日
和狐狸一起学——OpenGL宝典2.5.4——绘制形状
#include
void RenderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT);
//设置当前颜色为红色,供以后的绘图使用
//缺省透明值表示不透明
glColor3f(1.0f, 0.0f, 0.0f);
//填充一个矩形,前两个参数表示矩形左上角坐标
//后两个参数表示矩形右下角坐标
//虽然是个矩形,但是仍然是在3D空间中绘制,只是z = 0
glRectf(-25.0f, 25.0f, 25.0f, -25.0f);
glFlush();
}
// Setup the rendering state
void SetupRC(void)
{
// Set clear color to blue
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
}
// Called by GLUT library when the window has chanaged size
//当窗口大小发生变化的时候,ChangeSize函数接受新的尺寸
void ChangeSize(int w, int h)
{
//定义一个float型变量
//为了使OpenGL代码更易于从一个平台移植到另一个平台,OpenGL
//定义了自己的数据类型,这些数据类型都可以映射到正常的C数据类型
//当然,你也可以在OpenGL程序中使用C数据类型
GLfloat aspectRatio;
// Prevent a divide by zero
if(h == 0)
{
h = 1;
}
// Set Viewport to window dimensions
//定义视口函数原型为 void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
//x和y参数指定了窗口内部视口的左下角坐标,width和height参数指定了视口的面积。
glViewport(0, 0, w, h);
// Reset coordinate system
//投影矩阵,必须调用,原理以后再说
glMatrixMode(GL_PROJECTION);
//因为glOrtho函数实际上并不建立裁剪区域,而是修改原有的裁剪区域,它把描述当前裁剪区域的矩阵
//和参数描述的矩阵相乘。所以,调用glLoadIdentity的目的就是在执行任何矩阵乘法之前把坐标系统
//重置,否则每次glOrtho的调用将会导致目标裁剪区域被破坏。
//3D世界中对物体进行移动、旋转、缩放全部都是矩阵运算的结果
//想要搞清除什么是矩阵,矩阵怎么进行运算,你需要去翻阅大学的线性代数
glLoadIdentity();
// Establish clipping volume (left, right, bottom, top, near, far)
aspectRatio = (GLfloat)w / (GLfloat)h;
if (w <= h)
{
//定义裁剪区域,并在裁剪区域中使用了正投影,创建正投影模式的函数如下
// void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);
//left和right表示x轴的最小,最大值;bottom和top表示y轴的最小,最大值;near和far表示z轴的最大,最小值
//无论窗口怎么变化,都要保持正方形的外形,因此,裁剪区域的长宽比例必须和窗口的长宽比例保持一致。
//glOrtho函数的参数是采用逻辑坐标系,这里,当窗口变成瘦高的情况,裁剪区域的宽就不用变化,只需要把高等比例加高
glOrtho (-100.0, 100.0, -100 / aspectRatio, 100.0 / aspectRatio, 1.0, -1.0);
}
else
{
//当窗口变得扁长,裁剪区域的高就不变,而把宽按等比例加宽。
glOrtho (-100.0 * aspectRatio, 100.0 * aspectRatio, -100.0, 100.0, 1.0, -1.0);
}
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
///////////////////////////////////////////////////////////
// Main program entry point
void main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(800, 600);
glutCreateWindow("GLRect");
glutDisplayFunc(RenderScene);
//将ChangeSize设置成回调函数,每当窗口大小改变,它就会被调用
glutReshapeFunc(ChangeSize);
SetupRC();
glutMainLoop();
}
 
 
10:38 |添加评论 |阅读评论 (2) |固定链接 |写入日志 |OpenGL|ES
6月20日
和狐狸一起学——OpenGL宝典——OpenGL坐标系统
3D笛卡尔坐标

z轴同时垂直于x轴和y轴,它代表一条从屏幕的中心朝向读者的直线。3D笛卡尔坐标系在后面也被我们称作逻辑坐标系。
坐标裁剪
计算机的窗口是按照像素为单位进行量度的。你要在窗口中绘制你的物体,就需要告诉OpenGL如何把逻辑坐标系翻译成屏幕坐标系。
通过指定占据窗口的笛卡尔空间的区域来完成这个任务,这个区域被成为裁剪区域。
换句话说,笛卡尔空间(逻辑坐标)是无限大的,而我们的窗口(屏幕)大小是一定的,或者是800*600,或者是1024*768,我们不可能,也没必要将笛卡尔空间全部的显示在屏幕上,因此,只需要在逻辑坐标中指定出一个裁剪区域,只在屏幕上显示这个区域就可以了。
在二维空间中,裁剪区域就是窗口内最大和最小的x、y值。下图显示了两种常见的裁剪区域

左边这种是坐标原点在窗口左下方,y向上增量,x向右增量。右边这种是原点在窗口中央。
视口:把逻辑坐标映射到窗口坐标
裁剪区域的尺寸很少能刚好和窗口的尺寸相匹配,因此,逻辑坐标必须要通过某种方式映射到屏幕像素坐标。这种映射通过一种叫“视口”viewport的设置来完成。
视口就是窗口内部用于绘制裁剪区域的客户区域。
换句话说,我的窗口,不一定全部用来画我指定的裁剪区域,我可以只使用这个窗口的一部分大小来绘制我的裁剪区域。当然,一般来说视口是被指定成整个窗口大小。
下图显示的就是视口被指定为整个窗口大小。裁剪区域的大小是150*100,窗口的大小是300*200,所以逻辑坐标的1格单位与物理坐标(像素)的2格单位相匹配。

下图是视口小于窗口的情况,我们只使用的窗口的一角来绘制裁剪区域。

当然,你也可以把视口设置成大于窗口的尺寸,这样,窗口只能绘制出裁剪区域的一部分,物体就好像被放大了一样。
投影
不管你在屏幕上看到的物体多么的具有立体感,屏幕实际上只是二维的。那么,OpenGL是如何做到这点的呢,答案就是“三角法与简单的矩阵操作”(所谓“简单”只是老外的幽默)。如果想要真正的搞懂这块内容,大学的线性代数可能会对你有帮助,当然,如果你是数学专业的话。
1、正投影
就是不管远近,所有实际大小相同的物体,在屏幕上也会有相同的大小。如果你会3D MAX的话,MAX的User视图、TOP视图、LEFT视图、RIGHT视图、FRONT视图等等都是正投影的典范。
如果你还不能理解的话,打开《传奇》游戏(或类似的2D游戏),它的场景姑且就可以叫做“正投影”。
2、透视投影
简单的说就是近大远小,3D MAX的perspective视图就是此类,或者你打开《魔兽世界》看看……
 
 
 
16:04 |添加评论 |阅读评论 (1) |固定链接 |写入日志 |OpenGL|ES
6月15日
【转载】真长见识啊!这七句话被中国人误传了数千年
在崇尚权威的氛围中,名人名言占的地位是很重的,很多名家说的话,往往被人民当成指导自己观世界观的不二准则,但这些几千年流传下来的名言中,也有一些话被人刻意或无知地曲解,背离了话语者本身的意旨与初衷,迷惑了天下万千受众。影不才,试举数例解析一二,以还世情真相与大众……好了我再文诌诌地说话大家估计要扔鸡蛋,虚荣心也满足了,下面开始举例开讲。
1、以德抱怨
原句:“或曰:‘以德报怨,何如?’子曰:“何以报德?以直报怨,以德报德”————《论语宪问》
以德抱怨,是我们常听到的一句话了,人们通常理解的“以德抱怨”什么意思呢?就是说:孔老夫子教我们,别人欺负你了,你要忍,被打碎牙齿也要往肚子里吞,别人来欺负你,你反而应该对他更好,要用你的爱心去感化他,用你的胸怀去感动他。这就让人感觉很有点肃然了。想想看,如果我一巴掌呼过去那个被打的人还笑笑说打得好啊,你越打我我就要对你越好……遇到这种情况我也会感动到傻眼,这多好一孩子,多伟大的情操啊……
但事实上,我们根本曲解了的原意,我当初,也万万没想到原来在孔子这句“以德抱怨”的后边还跟着另外一段话,什么话呢?子曰:“以德抱怨,何以报德?以直报怨,以德报德!”看完以后,幡然醒悟,原来我们都被某个断章取义的孔子FANS给玩了一把!当时的真实情况是怎么样的呢?孔子的一个弟子问他说:师傅,别人打我了,我不打他,我反而要对他好,用我的道德和教养羞死他,让他悔悟,好不好?孔子就说了,你以德抱怨,那“何以报德?”别人以德来待你的时候,你才需要以德来回报别人。可是现在别人打了你,你就应该“以直抱怨”,拿起板砖飞他!看!就因为被人故意省略了一句话,刚烈如火的孔老夫子一下就被扭曲成了现在这个温婉的受气包形象。
与西方文化相比,东方文明一向被认为是谦逊坚忍的,同样是被人欺负,西方的带头大哥耶稣在圣经里就叫嚣要:“以眼还眼,以牙还牙。”小弟们!别人瞪了你一眼,你就要瞪回去,别人咬了你一口,你就要咬回来!而东方呢?佛家的精神领袖释迦牟尼说“我不入地狱,谁入地狱?”一副逆来顺受的样子。而且他可不是说说而已的,大鹰来欺负他,要吃他的肉,他也真从自己身上一刀刀帮大鹰割下肉来,这就伟大得有点近乎BT了。说完了国外的几位大领导,再回到中国,孔老宗师的这句话为什么会被别人有意地曲解呢?根源还是当时封建统治者的需要,他们的心思,无外乎就是要信仰孔子的万千民众成为“以德抱怨”的顺民,只有“以德抱怨”的民众,才会老老实实地服从他们的剥削和压迫。我们再来看看影响吧,孔老先生这句被曲解了的“以德抱怨”,在中国文化史上起的压迫作用,可真是大到了天上。皇帝残暴,我们要“以德抱怨”,地主剥削,我们要“以德抱怨”,八国联军都打到了,还是要“以德抱怨”,要卑躬屈膝,要割地称臣,要想尽一切办法彰现自己的“德”,要“量中华之物力,结大国之欢心”……就是没想过反抗。试想,如果中国的文化里,没有这种把正确的思想东篡西改来为封建统治阶级服务的恶习,如果孔子这句原话没有被刻意地曲解成这样子,我们中国人会养成这样一种懦弱的思维惯性吗?有人说西方人的骨子里本性是狼性,而东方人的骨子里的本性是羊性,这里如月影倒想问问了,是什么原因让我们变成了这样?如果我们从古以来信奉的是西方那种“以眼还眼,以牙还牙”的训诫,近代史上的中国,会给世界留下那么一个任人鱼肉的印象吗?
以德抱怨。
原句:以德抱怨,何以报德?以直报怨,以德报德。
歪曲程度:8
反面影响:9
2、民可使由之,不可使知之。
原句:。“子曰:兴于诗,立于礼,成于乐。子曰:民可使由之,不可使知之。”——————《论语·秦伯》
又是孔老先生的话,小小景仰一下下先。
民可使由之,不可使知之,这句话什么意思呢?是说,国家统治人民,指使驱赶他们去做事就行了,不要让他们明白他们在做什么。这句话在现在看来,绝对很明显就是封建统治阶级几千年来一直在玩弄的愚民权术,小老百姓嘛,让他们知道那么多干什么?最好都是昏昏噩噩,只知道照着我们的意思去庸庸碌碌一辈子,这句训诫不可谓不恶毒,它被千百年来中国的大小封建统治者奉为至宝,抹杀了多少真理与人民的创造性,但同时,我们的问题就来了,这样的一条愚民之术,真是孔子这位致力于教化人民的家的本意吗?
我们知道,在春秋时代的文章是没有标点符号的,后人要研读那时侯的文章,便要再经过一个“句断”的过程,即是根据上下文意思自己在句子的适当地方加上标点和停顿,这样才能得出一句句意通顺而连贯的话。在这里插一句,孔子的文章为什么被后人引用得非常多呢?这其一当然是孔子本身的名望使然,其二,则是因为他的语录涵盖的范围非常广,几乎包括了的方方面面,这样一来,后来的人无论是谁,抱着什么目的,都可以从孔子的话中断章取义地引用其中的相关部分,再加以自己个人倾向的理解和句断,用来证明自己的观点。比方说现在这句“民可使由之不可使知之”,从前文来看,我们孔老先生前边一直在讨论诗礼乐这三种东东的教育问题,可怎么后边一下子就变成去教帝王权术的训诫了呢?原来,这又是后人别有用心地断章取义,刻意在句子的中间用一个不恰当的“句断”使这句话产生了歧义的缘故。我们结合上下文的语境,很容易就能得出这句话正确的分句方法:“子曰:兴于诗,立于礼,成于乐。民可,使由之,不可,使知之。”孔子的整句话就是说,诗、礼、乐这三样东西是教育民众的基础,一定要抓好,如果人民掌握了诗礼乐,好,让他们自由发挥,如果人民还玩不来这些东东,我们就要去教化他们,让他们知道和明白这些东西。”你看,这才是“有教无类”的大教育家孔老先生的本意嘛。好好的一句话,硬是被那些别有用心的混蛋生生地坳成了孔子要愚弄人民,要阻挠人民知书答理寻求知识的愚民之术。真不知道那些曲解这话的***怎么想的,你要说这种P话是教育家孔子说出来的,谁信啊?都把人民当白痴来忽悠了?
有人说古时候的中国人民是不幸的,即便是在物质丰富的盛世,他们的精神世界也贫乏得可怜,到了中近代,西方的思想领域渐渐迎来了文艺复兴,迎来了民主共和,迎来了一个又一个推动世界的发明进步与思想启蒙,而聪明的中华民族呢?在更早的时候他们就有了伟大的四大发明,走在了世界的前边,可为什么就是这么好的基础,到了近代我们反而远远于西方这些小字辈的民族?民可使由之,不可使知之,多恶毒的训诫啊!它象一条张开血盆大口的大蛇,狠狠地缠在中华民族的身上,泯灭了多少先进的思维火花,束缚了多少应有所作为的苗子。但反过来看看,故意曲解这句话的封建统治者固然可恨,但我们能完全把责任都推到他们身上吗?这本身就是多么可笑的一件事情,我们怎么就没想想,一个伟大的教育家,一个用一生置身于教化天下民众的孔子,又怎么会说出“民不可使知之”的蠢话来?更可笑的是,这句话我们竟然就这样相信了几千年膜拜了几千年,这最后该伤心的,是孔老先生呢?还是我们呢?
民可使由之,不可使知之
原句:“子曰:兴于诗,立于礼,成于乐。民可,使由之;不可,使知之。”
歪曲程度:7
反面影响:9
3、无毒不丈夫
原句:量小非君子,无度不丈夫。——————民间谚语联对
量小非君子,无毒不丈夫,这句话绝对是中国众多以讹传讹的话中最的一个例子之一,就算是刚完成九年义务教育的初中生,也能轻易看出这其中的不妥之处,首先,这无毒不丈夫,就跟我们认识的古人崇尚的价值观念大大背离了,大丈夫,自然是说那些坦坦荡荡胸怀宽广的,什么时候恶毒阴损,暗箭伤人这种前缀也能放在前边来形容大丈夫了?
原来,这句来自民间的谚语本来应该是“量小非君子,无度不丈夫”,这本来是个很好的句子,里边充分运用了对仗。显示出了一份阳刚有力的气魄,一个胸怀坦荡的男人形象就跃然于纸上,可惜劳动人民口耳相传的这一句话,到了朝廷上那些所谓的学高八斗的“君子”嘴里就变了个味。为什么呢?这要从古时候文人的习性说起,在这副对联式的谚语里,“度”为仄声字,犯了孤平,念着别扭,很容易读为平声字“毒”,那些对音律美感要求甚高的学者们某天吃饱了没事儿干,便发挥他们的专长自做主张,把这句改为“无毒不丈夫”了,于是这句话,终于成了典型的“信言不美,美言不信”的例句,成了迂腐文人的笔下的又一个牺牲品,“量小非君子,无度不丈夫”,原话里一个君子对一个丈夫,一个度对另一个量,本来是很完美的一个句子,可经过上千年的以讹传讹,竟成了“无毒不丈夫”这句现在我们挂在嘴边的口头禅。
这句话的整个演变过程,我宁可相信是无意的,否则也太缺德了,这不故意往咱男人身上抹黑么?但就是这无意的一个讹传,却也给我们带来了些说大不大,说小不小的影响,我们都知道心理学上有个说法叫先入为主,潜移默化。无毒不丈夫,我们天天在耳濡目染这个被篡改了的男人形象之际,心里的价值观人生观,难免也会受到些不良影响,天天看着电视里奸人怂恿主角干坏事的时候都用这句:“干吧!无毒不丈夫!”然后主角想想也对,于是五指并拢手掌上举,狠狠地做一个切的动作:“无毒不丈夫,干!”你能说同样作为一个男人,这东西看久了你的思维能不收到一丁点儿的影响么?关于这种语言的影响力量,我再举个例子,比如隔壁顶撞了我一下,这时候我朋友张三来了:用的是原版的好话劝我:“老话说,量小非君子,无度不丈夫,大如啊你是个男人,就别跟他一般计较了。”张三这样说,我这个大丈夫当然再拉不下面子去计较这种小事,可如果另一种情况,张三来和我这么说??人,不能怂啊!给你刀,去做了他!”看看,我听到他这话,除了接过刀速度冲出去乱砍以证明自己是个男人之外,还真没什么好办法,你说对不对?
无毒不丈夫
原句:量小非君子,无度不丈夫。
歪曲程度:9
反面影响:5
4、唯女子与小人难养也。
原句:唯女子与小人难养也,近之则不孙,远之则怨。——————《论语·阳货》
现今女权主义抬头,孔老夫子的这一句话便立时变成了女权精英批判者们群起而攻之的绝好靶子,看看,这就是你们中国男人歧视咱女性的最初起源,孔夫子这老混蛋啊!害我们女性被压迫了几千年啊几千年,好不容易翻身做主人哪,我们要顶上半边天再抢他们的半边~~天!一时间,群情激愤,凶狠异常,热闹非凡。但各位姐姐们阿姨们姑奶奶们,且听如月影说两句话,你们把这罪过都推到孔老人家身上,却是大大地冤枉了他了。
先根据当年老孔的处境,提出一个疑问:“孔老先生当时,为什么要说出“唯女子与小人难养也”这样的话?任何人说话都不会是无缘无故的,当然,除了疯子,而我们的孔老先生应该不是疯子吧?而且这位孔老先生受《诗经》的影响很深,他说:“诗三百,一言以蔽之,思无邪”,他认为《诗经》是一部伟大的著作,而我们再来看看这部孔子都很推崇的巨著,里边倒有很大一部分歌颂了女子的活泼美丽,大方善良,歌颂了当时男女平等的浪漫氛围,事实也是这样,在春秋时代,男女间是相当平等的,而孔夫子本人更是曾反复多次以诗经里的“妻子好合,如鼓瑟琴”来表达了自己对和女子的平等看待观点。所以,说孔子歧视妇女,不仅和孔子的思想不符,更与当时的民间社会整个大环境对不上号,因此这个说法,实在是大大地有待商榷。
所以我们就要看看,孔子当初是在什么一种环境下说出“唯女子与小人难养也”这句话的?这话又是对谁说的?他一宗师级别的身份,不可能在路边想着想着突然烦躁就开骂一八杆子打不着的妇女同志吧?在《· 孔子世家》里,提到了孔子之前的卫国之行,孔子“居卫月余,灵公与夫人同车,宦者雍渠参乘出,使孔子为次乘,招摇市过之。孔子曰:‘吾未见好德如好色者也。’于是丑之,去卫。”我来大致翻译一下这段话,当代全国教育劳模孔老先生受卫国国君的邀请,来到了卫国参观学习休养,但在这期间,孔老先生突然发现自己被涮了,人家根本是拿他的身份来炫耀自己抬高自己而已,并不是真正支持他来这教化卫国民众的,尤其是那个卫灵公的,为了抬高自己的身望,公开炫耀,贬低了孔子,孔老先生那个郁闷啊,你卫灵公到底是喜欢德才多些,还是喜欢女色多些?在你心里我和你老婆哪个重要?干醋自己吃完,依然没人鸟他,孔子怒了,说:“吾未见好德如好色者也!丢!此处不留爷,自有留爷处!GO,GO,GO!”收拾行李就离开了卫国,离开之后,心情平复了,想起卫国公老婆那种仗着得宠,骄横跋扈乱政扰民的烂事儿,就发了感慨:“唯女子与小人难养也!近之则不孙,远之则怨。”
你看,知道了这些背景和人生经历,孔子这话就很好理解了。我们知道,他骂的人是那种“被养”的和小人,女子还好说,可想想什么人才能养小人?君主啊!再看看孔子的卫国之行,一切都明白了,他这话断不是发神经突然开骂起包括自己老妈在内的所有女人,而是有一个特指的对象,这个对象,就是卫灵公那位老婆南子,就是那些“近之则不孙,远之则怨”的宫廷女权,近之则不孙,远之则怨,这后一句话怎么解释呢?就是说你作为一个君主,对那些后宫的女人和没什么本事的拍马小人太亲近了,她们就会得意忘形,忘了自己的身份,开始用你的权力胡做非为,而你疏远她们吧,她们又要埋怨,总之是非常麻烦。此前没见过什么宫廷里女人之间的斗争的孔子说出这话是可以理解的,他的担心也不是没有道理,孔子之前,妲己误国,烽火戏诸侯,这些事例还少吗?孔子之后,宦官小人当道,皇后外戚乱政的桥段更是屡屡上演,不可枚数。所以我们的女性同胞们,你们要清楚,孔子当时没发神经把你们全天下的女人不分青红皂白地乱骂一通,别再憋屈他老人家了~~
最后一个问题,那么是谁误传了这句话,让我们可爱的女性同胞被压迫了几千年之久呢?俗话说冤有头,债有主,如月影要帮孔老夫子平反,自然也要再帮你们找到一个真正的罪魁祸首,让你们发泄出那几千年积下的怨恨(怎么说着说着象鬼片了-_-!),好了,拉回正题,西汉的时候有一位所谓的“大儒”董仲舒,此人大力主张“夫为妻纲”,就是这个家伙,借孔子的一句话断章取义,给广大的中华妇女头上戴上了千年的枷锁。看看这家伙在《基义》一书里提出的“三纲”:“君臣父子夫妻之义,皆与诸阴阳之道。君为阳,臣为阴;父为阳,子为阴;夫为阳,妻为阴。王道之三纲,可求于天。”他这东西就是一为讨好历任统治者的马屁之作。“君为臣纲”,为历代皇帝所接受,渐渐形成了封建统治的一套准则,而 “夫为妻纲”,则为历代男人所推崇。这“纲”是什么意思?君为臣纲,则君要臣死,臣不得不死!知道这个“纲”的厉害了吧?你想想,各位苦命的女子没嫁人前都一可人的窈窕淑女,本来身份平等,嫁了人,就得时刻提心吊胆地按着老公的这个“纲”过日子,这三纲五常,束缚了中国多少年,害了多少代人啊!
唯女子与小人难养也。
原句:唯女子与小人难养也,近之则不孙,远之则怨。
歪曲程度:6
反面影响:9
5、吾生也有涯,而知也无涯。
原句:吾生也有涯,而知也无涯,以有涯随无涯,殆已——————《庄子·养生主》
这句话是庄子说的,一下,庄子此人,实在是如月影非常喜欢的一个人物,他的思想和性情,都非常十分很特别对我胃口,什么大家不爱听这些?那算了,本来想抖点猛料让大家深入了解一下我这个好同志的……好了好了别扔鸡蛋,我说正事还不行吗?好,先来看看,“吾生也有涯,而知也无涯”,这句话我们在什么地方见得最多呢?第一,是图书馆,第二,是全国各个小学的后墙上,按照现在人们的普遍理解,这句话实在是学习励志类的不二明言警句,生也有涯,知也无涯,多崇高的目标啊,这比什么孔老夫子的“学而时习之不亦乐乎”都来得有气势多了,古往今来,不知道多少学子在这句话的激励下凿壁偷光闻鸡起舞奋发图强追求上进读那些永远也读不完的书,动力啊,偶像啊,庄子七老八十还能说出这么振奋人心的话,咱年轻的小辈正当青春,怎么能输给他老人家?不狠狠地读书怎么对得起他老人家?
但真相说出来,往往会让人哭笑不得,庄子的这句话其实是这样说的,“吾生也有涯,而知也无涯,以有涯随无涯,殆已。”我庄子的生命是有限的,但我面对的知识是无限的,要我以本来有限的生命,去追求那种永远看不到边的尽头,你当我是***吗?这样会搞死自己的捏~~庄子是一个追崇顺其自然,清净无为的洒脱人物,他认为人吃个饭,饱了就行,没什么必要追求奢华,穿个衣,别冻着就行,实在不需与什么人攀比。同样,学问也是如此,学够了就行,学以致用,学问学来就是为了用,你一个人再牛B,还能全部用到这世间所有的学问?既然不能用到,那你老学老学把自己整个生命都拿来学这是干啥呢?时间都被你拿来学习了,还怎么有时间把学到的东西拿来用呢?这不就跟吃饭是为了炫耀穿衣是为了攀比的人一样,完全本末倒置了吗?所以他老人家就在《养生主》一书中给后世陷入这个怪圈的书呆子们提了个醒,你们这样苦学盲学乱学通学,对身体不好滴,会搞死自己滴~~
当然,庄子的这句被人误解的话,其实并没有以上那些例子引起的反面作用那么大,读书是必须的,掌握一定的知识也是必须的,但咱们要记得自己把握好,有个度。你就算用半辈子武装得自己学富五车,却发现很多知识你根本用不上,这不浪费了么?庄子从来都不认为一个人能比自然更大,这是他所有的话中唯一的主题思想,实际上,就算我们拿现在的世界观来衡量一部《庄子》,仍能发现他的学说里,有许多是符合辨证唯物主义思想的。可叹的是,就是这么一位崇尚自然的思想家,他一句劝解读书人适可而止循序渐进的话却被一些叫嚷着“人定胜天”的人当成了激励年轻人拼命读书的名言来供着,科举改成了高考,八股改成了应试教育,于是大学生一年比一年多,可素质却一年比一年低下,最后整黄了吧?你看现在大学文凭都和废纸没什么两样了,这帮人还不醒悟,还是继续读,读完大学读硕士,读完硕士读博士,读完博士读博士后……读完出来一看,嘿,好象我已经老了捏,很多知识也用不着捏,这不自己跟自己过不去么?最后再说一句私人的牢骚话,最近我去图书馆,总看见一帮老头老太太天天在那侯着,一见有啥免费的学习班就往里钻,也根本不管别人老师是教着什么,各位老爷爷老奶奶们,听我这个后辈说句话,您们这不瞎捣蛋么?赶时髦啊?摆个性哪?想让我们称赞下您啊?还是真打算活到老学到老啊?自个儿细细思量一下有什么意义么?能不能腾些地方给些真正需要的人进去?M的连“量子力学基础浅谈”都有街道的老大妈在里边占着位置,我真是无语了……
吾生也有涯,而知也无涯。
原句:吾生也有涯,而知也无涯,以有涯随无涯,殆已
歪曲程度:8
反面影响:3
6、相濡以沫
原句:相濡以沫,不如相忘于江湖——————《庄子·大宗师》
说点轻松点的吧。
沿着伟大的思想家庄老爷子的足迹,我们再来看看另外一条咱们耳熟能详的名句:“相濡以沫”。
说起这句话,其实大有来头,我想大家都听过现在流行的一个词吧?江湖,这个“江湖”是从哪儿出来的呢?很多人以为最初是古龙里的一句“人在江湖,身不由己”,其实不然,江湖这个词最早的出处,便是在庄子说“相??我们讲了这么一个小:“泉涸,鱼相与处于陆,相呴以湿,相濡以沫,不如相忘于江湖。”他说的是有一天,一眼泉水干了,两条小鱼被困在了一个小水洼,为了生存下去,它们彼此从嘴中吐出泡泡,用自己的湿气来湿润对方的身体,互相扶持,互相依赖。但,与其在死亡边缘才这样互相扶持,还不如大家找到一条水路,开开心心地回到广阔的江河湖海,回到各自的天地,彼此相忘,自由自在。
我们口口声声说的“江湖”就是这么来的,没想到吧?做下小广告哈,欢迎观看点评在下拙作:小说《书江湖》,不是什么特别牛B的书,主角比佐罗牛B一点而已,现正联系出版或许不日上市,先搜索来看一下也可以~~
恩,恩,回来,相濡以沫,多美的情景,虽然这并不是爱情最理想的状态。当年街道居委会的老大妈就算再没文化,这句话肯定是会说的,在我们的父辈那个婚姻靠组织介绍的年代,这句话支撑了多少性格各异,却本没有多少感情基础的夫妻一直走到了今天,相濡以沫,多好的一个榜样啊,只是当年没曾想,只是当年不知道,既然需要相濡以沫才能支撑,为什么却不干脆洒脱地放手,把自己,也把对方放开去找各自的,去找各自的江湖呢?
相濡以沫,这句话的全部意思,又有多少人知道呢?
我有个大学的同学,是个陕西的女孩子,她在上学时找了个陕西的男朋友,她把自己的一切都给了他,当然包括了身体,可是那个懒惰的男朋友对她很不好,常打她骂她象佣人一样地指使她,却又根本离不开她,我们惊奇的是,她竟然一直默默忍受了下来,一忍就是四年,我们忍不住问她,你们过得这么辛苦这么难受,为什么还要在一起呢?她却这样回答:“嫁鸡随鸡,嫁狗随狗,虽然在一起不是很快乐,但这不就是相濡以沫吗?”
我无言,这能算是相濡以沫吗?为什么明明外边有更大的江湖,更宽广的天地,为什么明明知道知道自己有更好的未来,却要把双方都绑在一起,不开心地继续过下去呢?我们都身处一个传统思维占据非常强势地位的社会,一句相濡以沫,不知道让多少爱情做了这种传统思维的牺牲品。其实想一想,如果自己都不开心,别人的称赞又能怎么样?如果自己能找到属于自己的真正天地,别人的指责又能怎么样?唉,说大了,有点没边没际,父母也教育过我劝合不劝分的道理,这话题也到此为止吧,劝合不劝分,相濡以沫啊,原来我也不能免俗。
只是叹息一声,我们都没曾想到,除了一句相濡以沫,原来后边,还可以相忘于江湖。
相濡以沫
原句:相濡以沫,不如相忘于江湖
歪曲程度:--
反面影响:--
7:天地不仁,以万物为刍狗
原句:天地不仁,以万物为刍狗,圣人不仁,以百姓为刍狗——————《道德经》
要说起这句话,大半的愤青都会告诉你,这话的意思是说:“天地残暴不仁,把万物都当成低贱的猪狗来看待,而那些高高在上的所谓圣人们也没两样,还不是把我们老百姓也当成猪狗不如的东西!”标准的无政府主义宣言,标准的对社会不满。这句话在各种愤青的文章中,在当前下三流的网络YY小说里那是随处可见,主角通常是弱小无助,饱受压迫和不公,于是有一天突然醒悟,大喊一声“天地不仁,以万物为刍狗!”立时或悟道飞升,或肉身成佛,或从一个人人可以欺负的小瘪三变成一方霸主,等等等等,不一而足……
基本上,这些孩子的思维都可以总结为一种抑郁太久的被压迫感大爆发,就好象连老天都欠了他们个十万八万似的。可是呢?另一方面这帮无政府主义的家伙又没胆子喊出什么“王侯将相宁有种乎”之类更牛B的话,更不敢扯出个大旗子大叫“苍天已死黄天当立!”最后,只好喊一喊这句“天地不仁,以万物为刍狗”,以表达一种受到不公平待遇的憋屈。说实话,其实我挺同情这些人的,无政府主义没什么了不起,一个人在学生时代没有经历过无政府主义的阶段,基本上可以被认为没有青春,我也经历过那种思想特别冲动觉得这世界上谁都跟自己过不去的时代,不同的是现在我知道了怨天尤人一点用都没有,社会是不公平,社会就是这么吊不公平,如果你觉得社会不公平,你只有自己努力去改变这一切。
但就算我非常理解他们的青春年少,我还是有必要得跟这些后辈们说一句,你们这句话,其实恰好用错了。
天地不仁,以万物为刍狗,这根本不是你们从字面上理解的,说天地残暴不仁,把世间万物都看成猪狗,圣人不仁,以百姓为猪狗,也根本不是你们想的那样说所谓高高在上的统治者们,把百姓看得低微卑贱。其实这句话的真正意思是说,天地不用事,对万物一视同仁,圣人不情感用事,对百姓一视同仁。你们推崇的这句话,它的原意中根本没有你们所需要的压迫与歧视,却恰恰相反,它说的是一个公平的道理,我们所有的人,所有的众生在天地的眼中,都是平等的,为什么现在你啃着干面包,别人却吃着海鲜大餐?孩子,在大叫不公平之前,为什么你不想想你是否和他流过一样的汗水?如果想不通,也行,那就别想了,为什么你不尝试通过自己的努力,来稍微扭转一下这样的“不公”?只是大叫着不公平大叫着没天理大叫着等着天上掉个馅饼下来补偿你的委屈你的遗憾你正损失着的一去不复返的青春年华,有用吗?
天地不仁,以万物为刍狗。
这一篇是写给那些迷茫孩子的,如果你理解错了这句话,你会陷入自己的监狱,不能自拔。如果你知道这句话的真正意思,我恭喜你,孩子,这时你才真正长大。
14:05 |添加评论 |阅读评论 (1) |固定链接 |写入日志 |乱弹江湖
和狐狸一起学——OpenGL超级宝典2.5.3——初次接触GLUT
一个最简单最基本的OpenGL程序,它演示了使用GLUT的基本原理。
//#include "OpenGL.h"
//引入头文件。按说应该还要引入gl.h和glu.h
//但是glut.h实际上已经包含了二者,所以不比写出来了
#include
void RenderScene()
{
//最后需要一个函数来使用我们制定的颜色,
//执行实际的清除(洗屏)工作
//glClear用于清除一个特定的缓冲区或者一起清除几个缓冲区
glClear(GL_COLOR_BUFFER_BIT);
//这行代码导致所有未执行的OpenGL命令被执行,此时未执行的命令
//只有glClear。
//在内部,OpenGL使用一条渲染管线线性的处理命令。
//OpenGL命令和语句常常等待在队列中,等候OpenGL驱动程序的处理。
//OpenGL驱动程序通常是等到几个命令累计之后,再一次性处理。
//这种机制提高了性能。这是因为硬件之间的通信比较缓慢。
//硬件通信一次传递多个数据要比一次只传递一个命令或指令要快得多。
//glFlush告诉OpenGL它应该立即处理提供给它的绘图指令,而不是等待其它绘图指令。
glFlush();
}
void SetupRC()
{
//glClearColor函数设置一种颜色,用来清除窗口(洗屏)
//在大部分的OpenGL实现中,参数被设置成float类型
//许多windows下的C/C++编译器假定所有的浮点型字面值的类型都是double型
//如果不是显式的指定参数,那么编译器在编译的时候会发出警告
//因为你在用一个double的变量向只接受float的方法传递值,这有可能造成精度损失
glClearColor(0.0f, 0.5f, 1.0f, 1.0f);
}
void main(int argc, char* argv[])
{
//告诉GLUT函数在创建窗口的时候采用何种显示模式
//GLUT_SINGLE表示单缓冲的窗口
//GLUT_RGBA表示使用的色彩模式R红G绿B蓝A透明通道
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
//设置窗口大小
glutInitWindowSize(800,600);
//窗口标题栏的标题
glutCreateWindow("Simple");
//定义一个回调函数RenderScene
//当窗口需要被绘制的时候,GLUT会调用这个函数
//例如窗口第一次显示、窗口大小被改变、窗口从被覆盖状态中恢复
//就会发生这个调用
glutDisplayFunc(RenderScene);
SetupRC();
//启动GLUT框架运行。glutMainLoop函数一经调用便不再返回
//因此它只能在程序中调用一次。这个函数处理所有操作系统
//特定的消息以及击键事件等,直到程序终结。
glutMainLoop();
}
10:27 |添加评论 |阅读评论 (1) |固定链接 |写入日志 |OpenGL|ES
6月14日
和狐狸一起学——OpenGL的第一个程序
OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。
1、与C语言紧密结合。
OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL作图甚至比TC更加简单。
2、强大的可移植性。
微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。而OpenGL不仅用于Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,OpenGL的基本命令都做到了硬件无关,甚至是平台无关。
3、高性能的图形渲染。
OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先。
总之,OpenGL是一个很NB的图形软件接口。至于究竟有多NB,去看看DOOM3和QUAKE4等专业游戏就知道了。
OpenGL官方网站(英文)
http://www.opengl.org
下面我将对Windows下的OpenGL编程进行简单介绍。
学习OpenGL前的准备工作
第一步,选择一个编译环境
现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的。但这里我们选择Visual Studio 2005作为学习OpenGL的环境。
第二步,安装GLUT工具包
注:OpenGL是为C语言而写的。不得不承认,C语言不是用来编写复杂应用程序的流行语言。关于OpenGL一个最大的缺点就是:如果你不创建一个窗口(用来把你的图形放入其中),你就什么都做不了。但是OpenGL没有提供给你创建窗口的方法。这使得OpenGL对于初学者来说显得比较难。幸运地是,出现了GLUT (OpenGL Utility Toolkit)(OpenGL工具包)。它被用来轻松应对窗口、按钮以及用户事件。GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。
Windows环境下的GLUT下载地址:(大小约为150k)
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
无法从以上地址下载的话请使用下面的连接:
http://upload.programfan.com/upfile/200607311626279.zip
(或者是http://www.xmission.com/~nate/glut.html)
Windows环境下安装GLUT的步骤:
1、将下载的压缩包解开,将得到5个文件
2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\PlatformSDK\include\gl文件夹”)。把解压得到的glut.h放到这个文件夹。
3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\lib”文件夹)。(或者只有glut32.lib文件)
4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)(或者只有glut32.dll文件)
第三步,建立一个OpenGL工程
这里以VisualStudio2005为例。
选择File->New->Project,然后选择Win32 Console Application,选择一个名字,然后按OK。
在谈出的对话框左边点Application Settings,找到Empty project并勾上,选择Finish。
然后向该工程添加一个代码文件,取名为“OpenGL.c”,注意用.c来作为文件结尾。
搞定了,就跟平时的工程没什么两样的。
第一个OpenGL程序
一个简单的OpenGL程序如下:(注意,如果需要编译并运行,需要正确安装GLUT,安装方法如上所述)
#include
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("第一个OpenGL程序");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
该程序的作用是在一个黑色的窗口中央画一个白色的矩形。下面对各行语句进行说明。
怎么样?代码还不算长吧?
首先,需要包含头文件#include,这是GLUT的头文件。
本来OpenGL程序一般还要包含,但GLUT的头文件中已经自动将这两个文件包含了,不必再次包含。
然后看main函数。
int main(int argc, char *argv[]),这个是带命令行参数的main函数,各位应该见过吧?没见过的同志们请多翻翻书,等弄明白了再往下看。
注意main函数中的各语句,除了最后的return之外,其余全部以glut开头。这种以glut开头的函数都是GLUT工具包所提供的函数,下面对用到的几个函数进行介绍。
1、glutInit,对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次。其格式比较死板,一般照抄这句glutInit(&argc, argv)就可以了。
2、glutInitDisplayMode,设置显示方式,其中GLUT_RGB表示使用RGB颜色,与之对应的还有GLUT_INDEX(表示使用索引颜色)。GLUT_SINGLE表示使用单缓冲,与之对应的还有GLUT_DOUBLE(使用双缓冲)。更多信息,请自己Google。当然以后的教程也会有一些讲解。
3、glutInitWindowPosition,这个简单,设置窗口在屏幕中的位置。
4、glutInitWindowSize,这个也简单,设置窗口的大小。
5、glutCreateWindow,根据前面设置的信息创建窗口。参数将被作为窗口的标题。注意:窗口被创建后,并不立即显示到屏幕上。需要调用glutMainLoop才能看到窗口。
6、glutDisplayFunc,设置一个函数,当需要进行画图时,这个函数就会被调用。(这个说法不够准确,但准确的说法可能初学者不太好理解,暂时这样说吧)。
7、glutMainLoop,进行一个消息循环。(这个可能初学者也不太明白,现在只需要知道这个函数可以显示窗口,并且等待窗口关闭后才会返回,这就足够了。)
在glutDisplayFunc函数中,我们设置了“当需要画图时,请调用myDisplay函数”。于是myDisplay函数就用来画图。观察myDisplay中的三个函数调用,发现它们都以gl开头。这种以gl开头的函数都是OpenGL的标准函数,下面对用到的函数进行介绍。
1、glClear,清除。GL_COLOR_BUFFER_BIT表示清除颜色,glClear函数还可以清除其它的东西,但这里不作介绍。
2、glRectf,画一个矩形。四个参数分别表示了位于对角线上的两个点的横、纵坐标。
3、glFlush,保证前面的OpenGL命令立即执行(而不是让它们在缓冲区中等待)。其作用跟fflush(stdout)类似。
大家可以按照上面的叙述,自己设置编译器,下载GLUT,并亲手编译示例代码。
祝大家成功~
16:25 |添加评论 |阅读评论 (1) |固定链接 |写入日志 |OpenGL|ES
6月13日
和狐狸一起学——OpenGL ES系列 之 预备-1:开发Windows Mobile 5.0 应用程序
原文地址:http://www.play3d.net/OpenGLES/pre1/hello.html
开发Windows Mobile 5.0的应用程序,先要准备好工具和环境。
一、安装必要的软件包
1、安装Visual Studio 2005
没有什么特别的讲究,只要确认把Smart Device Development勾上就好。
2、安装Windows Mobile 5.0 SDK
二、测试环境是否正常工作
照例写hello, world!
1、新建项目 (File | New | Project)
在Visual C++下选中Smart Device,右边会列出Visual Studio已经安装的项目模板,来个"Win32 Smart Device Project"就好。对于一般的GUI应用来说,可能用"MFC Smart Device Applicaiton"来生成MFC应用程序框架会更合适一些。
项目名就叫Hello

2、项目设置
"Win32 Smart Device Project" Wizard还有一些可调整的参数,在上一步点了OK之后,会显示如下的Overview对话框:

点"Next >",进到Platforms定制界面

这个wizard蛮奇怪的,默认居然只有PPC 2003SDK,显然应该从左边先上"Windows Mobile 5.0 Pocket PC SDK",然后点">"加到项目里,变成:

然后再"Next >",进到最后的应用程序参数设置,默认的"Windows application"应用类型就好。

3、写点代码
按前面设置的参数,wizard生成的项目中已经包含程序的主体框架了,可以直接编译运行得到一个空白窗口。
生成的文件和代码如下图示意:

找到主WndProc中响应WM_PAINT消息的地方,加上一行代码:
ExtTextOut( hdc, 10, 10, 0, 0, TEXT("Hello, World!"), 13, 0);
4、选择目标设备
不同于PC上的应用开发,Smart Device应用可能跑在多种不同的平台上,我们称这些平台为Target。不同的版本的PPC SDK支持的Target也不尽相同,所以Target的设置分为两步,先在Configuration下拉框里选择SDK:

然后再到Target下拉框里选择目标,目标可简单的分成物理设备和模拟器。各版本的SDK都带有多种模拟器,所以即使手边没有设备也可以进行开发工作。

5、运行调试
让我们用Windows Mobile 5.0的模拟器来跑一下Hello, World!

如果编译的是Debug版本的,在连接到模拟器或者物理设备时,都可以进行调试,操作跟Visual Sutdio开发PC应用是完全一样的。下图中的红色圆球是一个断点,黄色箭头所指是当前执行位置,其所在行是下一条要被执行的语句。下图的情形是在断点 触发后Step Over执行了一个语句。

15:40 |添加评论 |阅读评论 (1) |固定链接 |写入日志 |OpenGL|ES
3月13日
墨西哥影片--潘神的迷宫
影片名:《潘神的迷宫》El Laberinto del Fauno / Pan’ s Labyrinth

导演/编剧:吉尔莫?德尔?托罗 Guillermo del Toro
主演: 道格?琼斯 Doug JonesDoug Jones
伊万娜?巴克尔诺 Ivana Baquero
玛丽贝尔? 瓦度 Maribel Verdú
塞吉?洛佩兹 Sergi López
地区:墨西哥/西班牙/美国
片长:115分钟
级别:R
上映:2006年12月29日
------好的影片不多,特别向大家推介这部片子,下面是在网上找到的一些影评,能帮助大家加深对影片的理解---------------
故事背景
故事发生在二战期间,1944年的西班牙仍然笼罩在佛朗哥法西斯独裁政权和内战狼烟阴霾下, 军队四处搜捕、屠杀共产党员和民主人士。12岁的奥菲丽娅(伊万娜?巴克尔诺)随身怀六甲的母亲卡门去北部与继父维达(塞吉?洛佩兹)会合。维达的真正身份其实是负责在西班牙北部镇压、逮捕当地游击队的法西斯军官,接卡门母女同住与其说是共享天伦还不如说只是要监视卡门把属于他的骨肉生下来,维达唯一的乐趣是研究各种刑具来折磨残害被抓来的异见人士。

眼看着冷酷的继父和其党羽每日做恶还以此为乐,母亲又患病在床,被孤独感和目睹暴行的痛苦困绕的奥菲丽娅开始沉浸在自己的幻想中聊以自慰。一天奥菲丽娅和自己玩的时候被一只蜻蜓一样的精灵吸引了,她跟着精灵竟在军队总部的地下发现了一个神秘的迷宫,而迷宫的守门人-长着山羊犄角和透明眼珠的半兽人(道格?琼斯)正在等待她的到来,幻想中的秘境原来确实存在。
长得象潘神的半兽人告诉奥菲丽娅她其实是一个地下王国走失的公主,要重回她的王国奥菲丽娅必须在迷宫接受三个挑战。在奥菲丽娅接过挑战任务的时候,继父也在地上加紧了更疯狂的扫荡攻势。地上地下,与恶梦的斗争模糊了幻想与现实的界限。

影片背景
奥菲丽娅驻足在巨大的犄角形迷宫入口的时候不禁又让人想起爱丽丝走进仙境的造型,只是以吉尔莫?德尔?托罗的审美观点仙境也是与黑暗和怪异有关。从《魔鬼银爪》开始,这个墨西哥出世、样子和减肥前的彼得杰克森有些许相似的异像导演一直在忠实地承继着他的前辈兼偶像大卫?柯南伯格、乔治 A?罗梅罗等爱把人最深层次的恐惧与强烈的视觉表现手法连接起来的风格大师大胆深刻的做派,毫无保留的把自己从小就积攒起来关于光明背后的奇幻世界的想象实现在胶片上,并逐渐形成自己的魔幻风格;五次获得有“墨西哥的奥斯卡”之称的Ariel电影奖,与阿方索?卡隆和亚利桑德罗?冈萨雷斯?伊纳里图成为代表着墨西哥电影业新力量的三面旗帜。
吉尔莫?德尔?托罗的异像世界与《魔戒》、《龙骑士》之流不同,不靠磅礴震撼取胜,但在细节的讲究却又古怪而摄人心魄,尤其他对歌特元素的变异利用,无论人物、道具的造型还是画面的质感都透出迷人的邪气之美,这些特色加上他离奇的故事情节,在《潘神的迷宫》里得到了最集中的体现;德尔?托罗一概包揽导演、编剧到制片人等职位,搭档们的支持和对他创造力的绝对宽容也让这部影片成为他从影以来个人风格最凝练、最有代表性的作品。
经过11个月闪电式赶工加班,《潘神的迷宫》顺利完成;2006年戛纳电影节上长达22分钟的掌声、《时代周刊》年度十大佳片之一以及上映后烂番茄网站给出高达99%的惊人好评又再次见证了一个另辟蹊径的魔幻经典的诞生和墨西哥电影人不容轻视的实力和野心。
影评
片子要完全理解是需要查查背景的,一个是故事的现实背景,一个童话人物的背景。现实背景,二战后期,德意两国节节败退,欧洲其他国家是胜利曙光就在眼前,而在西班牙,由于盟军的妥协,独裁统治者佛朗哥政府得到延续,他的长枪党对其他党派进行着疯狂的血腥屠杀和镇压活动,国内一片恐怖,他在镇压同时,用食物和药品的配给控制着人民,国内有很多游击队在不断反抗,这个情况直到1975年佛朗哥去世。片子里女主角Ofelia就是在这个背景下,来到继父法西斯上校这里。童话人物的背景,Pan是神话传说里半人半羊的山林和畜牧之神,他的形象是一半人一半山羊,他的性格也是亦正亦邪,经常用邪恶的手段来达成目的,所以就不要期望Ofelia在遇到他会有多么美丽的童话故事发生。里面Ofelia用来给母亲治病的是曼德拉草,曼德拉草的根须像人形,曼德拉草象征生育繁衍,食用它有助于怀孕,它有药用性质,事实上曼德拉草又含有大量有毒的置幻成分,是传说中巫师的药剂,这个潘神给奥菲利亚的药,和他本人一样亦好亦坏。

影片开始于一段童话故事,同时也结束于一段童话故事,似乎已经自圆其说了。看到这里我才恍然大悟:潘神、精灵、地下王国以及慈祥的国王父亲……原来所有这一切只不过是一个失去了父爱,沉迷于童话世界的孤女的幻想。无忧无虑的神话王国终究是不存在的,现实的确如母亲所说的一般残酷。一旦明撩了这一点,影片那种无限幽婉与凄凉的哀伤顿时如排山倒海而来,让人悚然动容。其实影片一开始,从地下王国的公主死亡说起,已经暗示了这部影片的悲剧色彩,注定与我们儿时听到的那些童话故事会大大的不同。
然而导演还是善意地为影片提供了一个摸棱两可的解释空间:在恍惚弥留之间,奥菲利娅仿佛来到了传说中的地下王国,潘神微笑着说奥菲利娅对伤害亲人的拒绝使她通过了最后一个考验,而前方,慈祥的父母仿佛就在不远处……相信这是所有观众都乐意相信并接受的结局。没有人在意唯一的真实到底是什么,因为真实和虚幻的界限本就若隐若现,如果你有宗教信仰,心存善念,小姑娘的灵魂就会回到故乡。如果你像我和其他每一个人一样只生活在尘世里,小姑娘就只是在临死感受到了一些幻觉。而奥菲利娅临终前的安详与快乐却是肯定的。
片子最出色的地方是能够将现实和童话融合在一起,在很多片子表现主题的时候说讲寓意、以古讽今,都不如《潘神的迷宫》这样的融合,反映显示的黑暗和残酷,表现法西斯的残忍、现实的冷酷,故事的两个方面现实的反抗法西斯、小女孩的童话故事,单个来说,都可能不够震撼,导演的高明之处就是能够天衣无缝把两个故事融合在一起,给了大家震撼。
我认为本片的艺术成就在于和谐地融合了各种反差很鲜明的类型电影风格,影片中的各种幻想场景基本都是德尔·托罗那种有点像哥雅的绘画,又有点B级恐怖片色彩的独特视觉风格,而影片的童话氛围却出人意料的纯洁(让我联想起了宫崎爷爷的电影哈),与历史现实部分的残酷暴力形成了鲜明对比。幻想与政治,童话与历史博爱与暴力在片中融为一炉,虽然各部分的衔接说不上天衣无缝,内涵也有深浅之分,但最后的效果基本还是平衡的——这就已经非常难能可贵了吧。
小演员Ivana Baquero扮演的纯真自闭的小女孩奥菲利娅异常入戏,她精致又略带憔悴,沉静而又敏感暗藏的面庞让人难忘,尤其是她最后的死亡场景相当让人动容。而在《你的妈妈也一样》中出演了大量情欲戏的Maribel Verdú这次完全隐去了成熟和美艳,转身变成了一位憔悴的女管家。而那位法西斯上尉是片中最出彩的角色,不仅因为演员Sergi López极为强势的表演,还由于编导对这一角色赋予的多重阐释空间。
事实上,本片让我印象最深的就是丰富的心理暗示,现实与幻境中暧昧的交织和符号对应。
究竟奥菲利亚的童话世界是真是假,奥菲利亚最后是死了还是进入童话世界?不过我觉得这些争论不重要,因为有比童话说法更适合《潘神的迷宫》,那就是魔幻现实主义,象最著名的《百年孤独》,魔幻现实主义有着魔幻色彩,有一些生活中不能存在的事情发生,看起来有童话意味,实际上是比现实主义更现实,更深刻揭露现实的残酷。《潘神的迷宫》也是这样的魔幻现实主义,现实中反抗法西斯,奥菲利亚只是一个小女孩,她不可能也不会在这么小的时候,就懂得那些道理,她是凭着自己的感觉来选择的,她不喜欢那个象征着法西斯残酷、自私、专制的继父 Vidal,所以在母亲让她叫父亲的时候,她说这个人不是我的父亲,她的弟弟是天使和魔鬼的结合物,她在潘神想刺她弟弟的时候,没有想过其他,这是她弟弟,所以她就要保护他。在外边残酷的战争进行的时候,她有着自己的世界,虽然这个世界一样是阴冷的黑暗风格,但是比起外面的现实世界,已经温暖很多,她可以凭借着自己的力量去完成任务,最后回到地底世界,永远幸福的生活着。奥菲利亚的世界,有一个形象很记得,就是那个吃人的白魔,他用食物引诱人,两个眼睛放在盘子里,等有人受到诱惑,他就开始活动,开始吃人。

如果把幻想部分看作奥菲利娅的梦境的话,就能发现很多值得玩味的东西:她幻想自己是地下王国的公主是对现实生活中缺少关爱的反动(就像罗琳写的哈里波特一样);地下王国的最大吸引力是慈祥的国王父亲——因为现实生活中的裁缝父亲早死,继父变态残暴;而最后一个任务也可理解为她对弟弟潜意识的嫉妒和仇恨——因为弟弟得到了自己没有的关注,且母亲是因难产而死。
同样的分析也适用于上尉Vidal,这个法西斯的刽子手恶贯满盈,但他同时也是法西斯体制的牺牲品。这可以从他的一家三代的关系看出来,上尉毫无疑问是仇恨自己的父亲的——客人对他父亲阵亡时的逸闻表示赞美,他却轻蔑地否认;刮胡子一幕可以看出他甚至仇恨自己这张脸;但他同时又是最像他父亲的,死到临头时都还想着效仿父亲的死法。他也不是完全没有人性色彩,他对儿子的慈爱绝非仅仅出于传宗接代的喜悦;但假如他活下去,他一定会像他父亲对待自己一样对待自己的儿子,他儿子也必然会成为和他一样的变态者。
此外电影黑暗风格无处不在,天是黑沉沉的,时常下着雨,更有Vidal阴冷残忍的面容统治着大部分现实世界。片子里的有几处暴力和血腥,显得很有冲击力,在这样一个片子里,有着奥菲利亚魔幻世界,有着魔幻色彩,本来以为不会如何血腥的,正是这种反差,让看起来很真实的几个暴力才更有冲击力,Vidal用瓶子将平民的脸砸烂、医生锯腿,Vidal的嘴划了道口子,他对着镜子缝起来,不是特效如何真实,而是太过现实,才有那种力量。奥菲利亚完成的几个任务,和现实世界都有象征,奥菲利亚完成任务的同时,电影也在同时揭露了法西斯残酷、专制。片子的黑暗风格一直都是,只有最后奥菲利亚回到了王宫,才是一片富丽堂皇的亮色,奥菲利亚最后可以幸福的生活在这里。而现实里,游击队也将上尉打死了,取得了胜利。
但是不得不说本片还是存在不少问题的:首先有些情节的交代还是略嫌草率,比如在完成第二个任务时,奥菲利娅偷吃葡萄就显得太不可信,这个小女孩与潘神初次见面就对他言听计从,那又怎么会对他那么严厉的警告置若罔闻呢?后面白脸人苏醒的部分也比较失败,惊悚是够惊悚,但这种B级恐怖片套路化了的悬念放在本片中就显得太廉价了;此外,奥菲利娅与女管家的母女感情虽然可以理解,但影片的交代还是不够充分;还有就是作为一部童话幻想片,本片的CULT色彩太浓了一点,地球上的花花草草们怎么受得了啊(当然,大多数花草是看不到这部R级片的)。当然这些白璧微瑕无损本片的出色质素,《潘神的迷宫》是一部出色的电影,我向大家郑重推荐这部电影。
 
 
9:22 |添加评论 |阅读评论 (1) |固定链接 |写入日志 |电影
3月11日
汉语是伟大的,英语是愚蠢的
汉语是C语言,高度灵活;
英语是Basic,是半成品,僵硬呆板;
汉语可以从基础上构造一切;
只要想得到就能表达出来;
而英语则是固定配置;
不能很好地表达个性的需要;
汉语的最小单位是字,英语的最小单位是词;
两个汉字可以组成一个词,而英语的词就是词;
比如汽车火车自行车都有车这个字;
于是抓住了共性和个性;
共性上加个性就是新概念;
可组合性非常强;
而英语的bus、car、bike没有任何共性;
因此中国人只要知道几千个字就可以表达世界;
而英语由于没掌握共性与个性的关系;
每一个事物都要造一个词;
描述世界需要极大的词汇量;
十分愚蠢;
事实也是如此;
聪明人一般学不好英语,而死记硬背的笨蛋都出国了;
汉语里没有时态;
只有表示时间的词;
因此不需要在动词上变来变去;
只要把动作与为数不多的表时间的词组合
就可以清晰地表达时间中的动作;
而英语里为了表示时间要把所有的动词都变换形式;
这些动词数以千计;
不是有表示时间的词吗?
为什么还要在动词上变化?
还是愚蠢;
英语只能横排不能竖排;
竖排是神经病;
而汉语就没有这个问题;
汉语从前就是竖排的;
汉语可以从右往左排;
在阅读上没有困难;
但是英语的单词因为是表音的;
只能从左往右读;
如果把英文语句从右往左排;
读者必定跟吃了摇头丸一样;
30分钟后头晕至死;
英语以空格作分隔符;
本身不表达任何含义;
却占一格;
浪费版面;
浪费bit天理难容;
而汉字没有这个问题;
汉字之间不需要空格;
这个字与下一个字不会混淆;
这就是汉字的优势;
汉字是方的,英语是长条的;
因此汉字写的扁一些长一些都可以;
不会比例失调
而英语如果写成方的就非常难看;
并且由于有的单词长,有的短,都写成方的;
也不知道占几行;
并且,由于英语的长
英语书一般也很长;
浪费纸,不环保;
这行的词无法与上一行的词对齐;
看上去乱七八糟的;
汉字书写自由;
可以倒笔画;
而英语就不行,英语必须按照顺序写;
如果倒笔画了;
将一塌糊涂;
英语单词有长有短;
换行是个问题;
如果用-号;
一个单词被分两行看起来费劲;
如果整个单词换到下一行;
对齐又很困难;
汉字的信息含量非常大;
比如道字之字有很多很多含义;
而英语则十分弱智;
一个词的含义有限;
关于这个观点各位可以参考文言文;
英语表音,而汉字表音形意;
在读音上有启发性;
而根据形可以直接想象客观存在的样子;
而英语缺乏相应的内涵;
moon与月亮没有任何关系;
horse与马也没有任何形象上的联系;
机械的很;
汉语可以表意;
看到偏旁可以理解大意;
而sleep算什么玩意?
不过是字母的组合
无法反映客观实际的内在的本质的联系;
英语就是拼音;
汉语可以用拼音表达;
中国的小学生都会拼音;
可见英语之简单;
事实上中国人完全可以把语言建立在拼音之上;
而拼音由声母韵母构成;
可以很简单地组合出汉语的发音来;
而英语就笨的跟笨蛋似的;
一个词需要很多音标;
有人说汉语难学难写难认;
要改成表音文字;
而英语能读一般就会写;
于是比汉语好;
其实那是放屁,崇洋媚外;
汉语拼音是中国的拼音文字;
比英语简单得多;
完全可以做到能读会写;
但是中国人只把拼音当作识字的工具;
当作小儿科;
语言的目的是表达思想和客观世界的;
而不是一些字形和声音;
读和写,在语言表达世界方面;
只占很小的一部分;
重要的是语言的含义;
是语言表达世界的能力;
而汉语在表形和表意方面比英语强一万倍;
从汉语本身就可以直接映射部分客观世界;
而英语完全缺乏这个功能;
英语仅仅是语音的编码;
而汉语则是音形意的编码;
是立体的编码;
阅读英语时人们往往注意了读音;
而忽略了含义;
然后再从音去检索意;
这种音与意的映射全靠死记硬背;
语言反映了人的思维;
英语国家的人;
比中国人单纯呆板幼稚的多;
他们宏观思维能力很糟糕;
处理事情缺乏灵活性;
做事偏激;
与阿拉伯的极端分子处于同一个档次;
汉字输入比英语麻烦;
这只能说计算机笨蛋,而不能说明人笨蛋;
毕竟汉字是按照音形意编码的;
现在的计算机和程序还没聪明到能够完美地处理汉字的程度;
计算机能够很好地处理英语;
说明英语的水平也就是计算机的水平;
计算机不能很好地处理汉语;
说明足够丰满和复杂;
难道汉语的先进也是一种错吗?
世界变化发展
新的概念层出不穷
字母文字应付的办法只好是造词
过了上千上万年之后
超负荷将把字母文字压垮
整个世界唯有汉字独领风骚
16:13 |添加评论 |阅读评论 (1) |固定链接 |写入日志 |兴趣
日本天皇裕仁在二战期间曾后悔与中国开战
二战时期日本昭和天皇裕仁的一名侍从的日记近日被公开。香港《文汇报》报道,这位侍从当时日夜伴随裕仁左右,他在日记中披露了日皇在中日战争期间,后悔与中国开战,并抱怨日军主帅低估了中国的军力,以致日军长期久攻不下而终告战败。
已故的小仓库次曾任昭和天皇侍从,其后担任东京都立大学法经系主任,他在二次大战时期所写的长达600 页的日记副本被发现,并刊登在昨日出版的《文艺春秋》4月号上,其中记载了昭和天皇裕仁自1939年至1945年日本战败期间,未曾对公众发表的言论,包括他曾说“满洲事变(918事变)令人饱尝痛苦”。
日本在1931年对中国发动首场战事,侵占中国东北三省并在该处建立伪满洲国,于1937年全面侵华。 3年后,即1940年,日皇已开始暗地埋怨日方的军事专家,低估了中国的军力:“每个人都对战争判断错误……特别是陆军的专责部门……应尽快结束战事,并在未来10年重整国防军力。”但如火如荼的战事已一发不可收拾。
承认低估中国军力
1941年,裕仁甚至暗自批评当时首相近卫文麿:“大东亚战争开始前我已十分忧心,近卫在任时,好像毫无准备便带领我们进入战争,东条(英机)接任后我们才真的准备好。”其后一年,他开始担心与日本签订中立协议的前苏联会加入战争,助中国一臂之力:“我不想与中国开战,因为我实在害怕苏联的强大军力。”
惧怕当时中苏联手
偷袭珍珠港后,美国加入战事,成为中国一方的同盟国,日军形势岌岌可危,日皇又开始懊悔,他说:“开始一场战争前必须深思熟虑,开战以后便难以中断……决定何时结束战争十分重要。”但眼见战事已不能回转,便又补充说:“一旦开始了,便要进行到底。”
一年后,裕仁宣布日本无条件投降,并放弃皇位,让美国进驻日本。后来因美国对前苏联的种种政治因素考虑,天皇的名位得以恢复,裕仁于1989年逝世。(中国新闻网)
15:31 |添加评论 |阅读评论 (2) |固定链接 |写入日志 |历史
中国人缴纳的高税收,哪里去了?
这是一篇较早的文章,其中个税起征点已经改成1500,但是劫贫济富的现象依然存在。
中国人冤不冤:税负全面分析
一、中国人税负全球第二高美国财经双周刊《福布斯》今日发布报告称,在全球52个国家和地区中,中国香港是仅次于阿拉伯联合酋长国,全球第二个税负最轻的地方;中国内地则是全球税负第二重的地方,居于法国之后,也是亚洲税负最重的地区。中国专家称,经济高速发展,“税务负担指数”高是必须经历的阶段。
中国税负全球排名第二高《福布斯》的“全球2005税务负担指数”调查,度量世界52个国家及地区雇主及雇员的综合税务负担,所用指标有5个,即公司所得税、个人所得税、财富税、雇主及雇员社会保障金及销售税。
该调查显示,中国在上述5个指标中,除了“雇员社保金”高于首位的法国外,其余指数均低于法国,总指数为160,全球列第二位。接下来的分别是比利时、瑞典和意大利等,中国台湾地区列49位,中国香港地区列55位,即倒数第二位,税务负担仅重于阿联酋。
二、工薪阶层:纳税主力军
据国家税务总局统计,2000年全国共征收个人所得税660亿元,其中工薪阶层缴纳的就有283亿元,占了42.86%,高居各个应税项目之首。 2001年上半年,个人所得税共收入464亿元,工薪阶层所占比例依然最大。富人逃税、漏税,而普通工薪阶层、中低收入者负担了本来具有调节财富分配功能的个人所得税,这在中国早已不是什么秘密。
近些年来不断地在报上看到有关个人所得税问题的消息,有许多感慨。三年前新华社发出一条消息:《个人所得税主要由工薪阶层缴纳正常吗?》,据国家税务总局统计,2000年全国共征收个人所得税660亿元,其中工薪阶层缴纳的就有283亿元,占了42.86%,高居各个应税项目之首。2001年上半年,个人所得税共收入464亿元,工薪阶层所占比例依然最大。富人逃税、漏税,而普通工薪阶层、中低收入者负担了本来具有调节财富分配功能的个人所得税,这在中国早已不是什么秘密。
时隔一年以后,我又在报上看到《朱?基质疑富豪不缴个税?国家将加大对富裕阶层个人所得税的征收力度》的消息。在美国《亚洲华尔街日报》评出的“中国十大富豪”中不少人还是政协委员,他让税务部门一调查,结果发现这些富豪统统没有交个人所得税。他对此大为不满?“为什么越富的人越不交税呢?这是不正常的,都不交税,国家哪里有钱,怎么办事业呢?” “我看个人所得税还是应该交,我的工资超过800元的都交了,为什么越富的人越不交税呢?这是不正常的。”
中国有些人太荒唐了,大学生勤工捡学也要缴税!那他一年的总收入是多少?他一年总收入能否养活他自己?
三、高税收是否让老百姓得到了高福利?
1、九亿农民:基本没有医疗保障农民有“三怕”一怕自然灾害和市场风险,发展没底数;二怕老,老了没人管;三怕得病,缺医少药看病难。不少农民最后都死在家里。为什么?看不起病。小病扛、大病拖,实在不行就往家里拖,是许多农民的真实状况。现在医院的条件越来越好,收费也越来越高,一天的药费就是半年的庄稼钱。许多农村医保几乎空白,得了绝症只好在家等死,生和死都不用出门。农民真的很想问问,看病为什么就这样贵,医保何时保到我们?
2、教育产业化让穷孩子读不起书年年高招,年年有考上大学却因缴不起学费而无缘读书的凄凉报道。不要提内地欠发达地区,不要提广大乡村,更不要提“老少边贫”,就是在北京上海广州这些富庶地区,家庭经济建设稍未跟上时代步伐的市民,孩子考上大学也是一件让整个家庭布满愁云惨雾的“大喜事”。据现在的调查,大学生的家庭来源愈来愈集中,来自贫困地区贫困家庭的学生越来越少,严格地说,没有。造成这一现状的原因当然很复杂,但高校畸形的高收费是一个最直接、最看得到的过滤器,将所有贫困家庭的孩子挡在了外面。
3、下岗职工:可有可无的失业保险按照官方的估算,失业人数大约为550 —600万人左右。而众多学者在研究失业问题时实际上往往还有另外三种口径:其一,是在政府发布的失业率上加上企业下岗职工,即再加上650万人左右;其二,是在第二种口径的基础上再加上现有企业的冗员,目前各方面对企业冗员的估计在1500—3000万人左右;其三,是再加上农村的剩余劳动力,即每年 3000万人左右。按照1999年条例规定,建立失业保险基金,用人单位按照工资额2%缴费,个人按照工资的1%缴费。失业金按照缴费时间计发,贡献多者标准高些,享受待遇时间长些。但是,在失业保障的力度方面,有的学者认为目前我们对失业提供的保障还过小,制度承受力不够。
4、社会福利严重落后用GDP衡量经济发展有缺陷的,比如经济发展的同时,伴随著贫富差距的扩大、政府的迅速腐败,生态环境的急剧破坏等等,所以发展经济学后来就慢慢的衰落了。早在90年代中期,已经有人意识到用GDP不能衡量社会发展。在中国用GDP作为衡量经济发展的指标,至少带来很多问题比如GDP不能衡量社会福利的增长。社会福利以养老金来说,现在全国很多退休工人领不到养老金,全国总工会早在1996年就做过一个调查,除了一般退休工人的生活状态之外,那个调查中还提到一个特殊现象,很多历届的全国劳模退休后的生活都非常困难。这个报告是想说明:这些具有特殊政治地位的全国劳模退休后生活都如此困难,一般工人就更不用说了。
四、中国人缴纳的高税收,哪里去了?
数据是最有说服力的,让我们先看一下国家统计局2004年发布的《中国统计年鉴》中的数据。国家财政收支总额:2003年,国家财政收入为21715.25亿元,财政支出为24649.95亿元,收支差额-2934.70亿元。国家财政按功能性质分类的支出:2003年,经济建设费7410.87亿元,社会文教费6469.37亿元,国防费 1907.87亿元,行政管理费4691.26亿元,其他支出4170.58亿元。据报道,目前,国民经济GDP的实际税负已经高达32.55%。与世界上发展中国家18-25%的税负相比,已经是太高。企业、个体工商户和村民的负担已经很沉重。而高达37960亿的国家实际支出中,只有21.33%用于公民最需要的社会保障、抚恤救济、教育、医疗卫生四类项目。而其他的财政支出呢?
1、公款吃喝一年2000亿据报载,全国一年公款吃喝在2000亿元以上,相当于吃掉一个三峡工程。这是一个触目惊心的数字。人们不禁要问:有多少公款经得起吃喝?记者在基层采访时,发现这样一种怪现象:越是经济发展相对落后的地方,招待越是丰盛;越是穷的地方,吃喝风越是厉害,干部也越是讲排场。更不用说一些人借职务消费之名,混水摸鱼,明目张胆地捞取个人好处。即使一些看起来正当的职务消费,也讲排场、比阔气,大肆铺张浪费,“一桌酒饭一头牛,一部小车一栋楼”。
2、公车支出一年3000亿一个惊人的数字:每年公车消费3000亿人民币,占财政收入的13%,全国13亿人年均负担230多元。公车改革旷日持久,举步维艰。 “两会”上代表、委员对此事各抒已见。全国政协委员孙继业说,目前公车制度存在的弊端有目共睹,影响改革的进程和步伐,“主要原因在于公车改革影响最大的既得利益群体主要是领导阶层,因此公车改革的阻力也特别大。”公车改革的阻力来自既得利益的领导阶层,这个原因找得准,但更令人担忧。
3、公费出国考察一年2000亿2004年党政干部出国支出应该是2000亿元人民币,这个数字与某媒体“去年大陆官方出国考察共花费了2000亿元人民币”的报道是一致的。用于公费出国培训、学习、考察,甚至游玩、娱乐一年花去2000亿元人民币,这简直就是天文数字,相当于每位公民为出国干部负担 160元费用(按13亿人口计算)。这2000亿元人民币在出国之前要兑换成外汇。
4、决策失误:看不清的无底洞全国人大常委会委员长吴邦国曾说:我们国家最大的浪费莫过于战略决策的失误。世界银行估计,"七五"到"九五"期间,投资决策失误率在30%左右,资金浪费及经济损失大约在4000亿-5000亿元,这是一个多么惊人的数字!在刚刚结束的全国政协小组讨论会上,曾身居电信行业要职的杨贤足委员就一种现象提请国家高度重视: "电信网络存在严重的重复建设和资源浪费,其浪费数额相当于建几个三峡了。"
五、高税收、高福利、高生活质量的现实典范!
欧洲国家普遍是高福利国家,税收高,但并不成为百姓的负担,相反老百姓能从这种“高税收高福利”的体制中获益,因此去欧洲尤其是北欧国家旅游的人,对当地人的灿烂笑容一定影响深刻,那是一种发自内心的欢愉。因为有良好的福利政策作为保证,北欧的公民才可以自由自在地生活。
1、瑞典堪称是平均主义的社会瑞典堪称是平均主义的社会。瑞典之所以平均,得益于高税收高福利:1995年,该国蓝领工人平均月收入15100瑞典克郎、白领 20200克郎,其中要交所得税31%,大公司的经理则要交60~70%的个人所得税。瑞典的福利可谓五花八门,有病人津贴,父母津贴,寡妇抚恤金,妻子生活补助,医疗补助,住房补助,未成年人补贴,从小学到大学全部免交学费,中小学生免费午餐等“:”瑞典首相的年薪与一般工人相比,纳税后为2:1;首相住在居民区,没有保镖,出入不带随从;家中无公务员和厨师,上下班乘公共汽车或开私家车;瑞典前首相费尔丁出身农民,任职时还抽时间回家务农“。
2、丹麦的高福利公立学校是不用交学费的,而且对丹麦学生来说,政府每月都有补助,补助足以支付每月的开支。学生的成绩是13分制,6分就及格,11分以上就很不错了。而且电脑上网是免费的,这是北欧的福利制度,不是任何地方都可以享受得到的。每个学生都可以得到一个免费上网帐号,而且还能免费打印 500张纸(每学期)。AOF是免费学习丹麦语的地方,不光是免学费,而且提供书本、铅笔,甚至免费的饮料,不可想像吧!这都是高税收、高福利的好处。在丹麦你绝对可以自由地学习,自由地支配自己的时间,一切都是自己做主。
3、新西兰福利税收新西兰的社会福利制度由来以久,早在一八九八年为保障老年人的生活就已引入了养老金制度。与其他国家的社会保障制度不同,新西兰收入资助的资金来源于税收收入。在新西兰没有一个特别的基金会需要工薪族缴纳任何款项。对那些符合资助标准的人来说,接受现金救济是他们应有的权利。这些救济包括抚养补贴,例如用于维持家庭生活的补贴,以及给予孤儿、丧偶者和无人抚养的儿童的补助。病残抚恤的内容包括对病人和残疾人的补贴,甚至还向残疾人提供贷款,用于搬家、修理房屋和购买汽车。在新西兰,60岁以上可以领取养老金(到2001年将改为65岁)。与工作相关的救济包括培训和失业救济,以及在寻找工作期间给予的补贴。其他的补贴方式有:儿童抚养补贴、葬礼津贴和康复补助。新西兰六岁至十六岁的小孩必须接受强制教育,但是大部分的小孩从五岁开始上小学,免费的强制教育最多可延长至十九岁。
4、印度人看病不用花钱印度宪法规定,所有国民都享有免费医疗。为此,印度在全国建立了2.2万个初级医疗中心,1.1万个医院,2.7万个诊疗所和 2000多个社区医疗中心,形成了一个覆盖面比较广的医疗网络。这些政府医院对所有病人敞开大门,从挂号、手术到药品各项服务一律免费。病人看病不花钱,自然会经常光顾医院,这就导致了一系列弊端。首先是政府财政不堪重负,资金无法及时到位。医院财政紧张,医疗条件自然就难以跟上,稍微好点的药品经常缺货,使得病人被迫拿着医生处方到药店里自费抓药。虽说政府医院看病免费,但是有钱人肯定无法忍受这里脏乱差的条件,因此,设备先进、干净整洁但收费昂贵的私立医院就成为他们看病的首选地。在印度,私立医院约有1300多家,主要面向中产阶级以上的人群。
六、中美个人所得税率和百姓生活质量大对比!!!
中国的每月3500元人民币的税率相当于在美国5万美元年薪的税率,可生活质量差别巨大。美国5万美元一年已经可以养家,中国大城市里, 3500/月永远都买不起房子,税一扣,每月交通和房租一交,给父母300,吃饭500,连自己都养不活。
1、美国
A、个税含义美国的个人所得税可以扣除很多东西,年底有一次总的算法,如果你多交的会退回给你,有很多的利益,老来退休的时候国家每个月会给你很多钱养老,这钱可能比你交的税要多很多。
B、税率单位美国的税率是按照家庭来算税的,如果你的收入要养老婆,就按照两个人来算,还有孩子就按几个依赖你的人来算税。这时候,你的税率是非常之低,低至没有的地步!甚至孩子多了的时候国家还补贴钱给你。如果你的老婆有收入,家庭的收入加起来一起算税比分开算税的税率要低一些。
C、失业美国如果失业,可以拿到每个月大约1000多美元的失业金,这钱足够租房和吃饭费用。
D、买房美国买房退税
E、买车美国退税
F、生活质量美国人买的房子都是别墅,中国买别墅的房子一点都不比加州便宜,中国的别墅一个月什么管理费都要一万多呢,而美国呢?
美国交了税后,享受到了该享受的所有好处,上高速公路免费,汽车年费为不到几十美元,考驾驶执照12美元。没有养路费的说法。子女上大学之前免费。
2、中国A、个税含义在中国,如果你在这个月有收入,就缴税,下个月没有收入了,也不会退税,年底没有,退休也没有,永远都没有退税。B、税率单位
B、税率单位中国的税从来都不考虑你的明天和你的小孩,决不考虑家庭因素。中国没有养老,年轻人可能要养活四个老人和一个孩子。中国把养老这个问题丢给了社会和个人,国家和政府基本卸掉了全部责任。要求单位负责为个人交养老保险。你交的税没有给你带来任何养老和任何好处。给社会上的企业和单位带来负担。
C、失业在中国现在我个人和单位每个月交了300多元失业保险,如果失业,每个月如果跑断腿,找各种部门和机关,可能可以拿到400元人民币每月。
D、买房中国买房交契税, 0.75%到2%
E、买车中国缴税
F、生活质量上海,北京等中国的大城市的房子已经是80万到100万的价格了,够工作的人奋斗一辈子,子女的学费,养老,失业等一大堆问题。国家政府和制定政策的人有稳定的收入,从来不知道老百姓的苦楚和生活质量在稳步下降。
子女上幼儿园:国内大城市大多一万到两万一年,也有便宜的子女上初中,高中:国内大城市大多一万到两万一年,也有便宜的子女上大学:中国的学费已经可以和英国相提并论了
七、警钟贯耳:税负轻重标准在于百姓福利!!!
有些专家争论诸如《福布斯》的统计方法有问题、中国的税收总额要扣除社会保障费或者什么个税起征点如何啦,都是隔靴搔痒,没有打到靶子上。比如有一种比较典型的观点认为中国的税收负担没有那么高,为此辩护的理由是欧洲还有更高的税。可是问题的重点并不在于税收了多少,而是收这些税百姓有没有怨言。收了税之后,用在哪里了,怎么用的,老百姓满不满意?这才是问题的关键所在。
1、税收应“取之于民,用之于民”
通常而言,税收是“取之于民,用之于民”。作为国家财政的主要来源,其使用应用于“公共目的”,而什么是“公共目的”,当然就是“代表最广大人们的根本利益” 的目的,按照现有的法律,每一项大型的财政支出,应该交全国人大讨论是否属于公共目的。也就是说,老百姓不满意的那就不能用。美国人固然穷兵黩武,拿着公民的钱去搞军事,但那也是国会表决同意的。所以对公共财政的使用如何进行有效的监督,比讨论税收统计方式来得重要。
2、必须检讨自己的税收政策我们必须检讨自己的税收政策,采取措施将中国的税负降下来。就像在农村实现农业税减免一样,也必须对我国城市现行的税收政策进行调整,从整体上将税负下调。税负过重的根本原因,是行政开支过大。庞大的政府机构系统,加之形形色色的其它“吃皇粮”的队伍,几乎将每年国民收入相当大的一部分吃掉。治理税负的源头工程,必须是行政体制的改革,必须是裁减“吃皇粮”队伍。没有行政开支的大幅度减少,税负的降低是不可能的,表面上降下来,必然“按下葫芦起了瓢”,会在另外的地方补上去。
3、税负公平与税金使用比总量更重要不公平的税负分配让公众觉得自己负担过重。亚当。斯密指出公平是政府税收的首要原则:“每一个国家的国民应当尽可能地按照各自能力的大小,即是说按他在国家保护下所获得的收入的比例”交税。通俗地说,税负应该与收入成正比。但是,现行的税收制度让公众嗅到了“劫贫济富”的味道。与其说公众心理税负沉重起源于实际税负总量大,还不如说是因为税负公平的稀缺。税负的分配与使用如果不符合社会公平的基本准则,即使实际税负并未在全球名列前茅,人们依然会觉得不堪重负,结果将严重影响公众对政府的满意度与认同度——从这一意义上说,税负公平比税负总量更值得决策者们警惕。
4、期待税负“痛苦”转为百姓福利我们的财政收支对弱势群体的关心还是远远不够的,为此,党的十六届四中全会提出建立促进“五个统筹”发展的有效机制、加强薄弱环节做好“五个重视”的要求,为财政工作注重经济社会协调发展、构建和谐社会指明了方向,也代表着广大民众的心声。问题的关键是各级政府应该秉持“立党为公、执政为民”的宗旨,真正将中央的精神落实到位。要把当前的税负“痛苦”转化为百姓福利,就必须进行税制改革。政府及税务部门的宣传口号是“取之于民、用之于民”,财政、税收必须为扶助弱势群体、共建和谐社会提供更多帮助。事实上,政府部门已经在思考相关的问题,国税总局对弱势群体税负较高的认可,对即将进行的税制改革无疑具有参考价值。
5、 800元的个税起征点应该提高800元的扣除标准25年一直未变,显然早已不适应我国经济发展和居民的实际收入水平。正如很多人抱怨的,在上海、深圳等城市,月薪1500元都很难过日子了,难道还要交税吗?如果这些地区将800元定为免征额,就势必侵犯人民的基本生活费用。由于起征点太低,大部分税赋落到收入较低的工薪阶层身上,个人所得税本应起到的调节社会成员收入差距的作用,如今却形成了“劫贫济富”的后果,与法律出台时的目的相悖。广州、深圳等地提高个人所得税费用扣除标准,是合乎实情也合乎民意的务实之举。
6、税制改革已是必然“简化税制,扩大税基,降低税率,提高效率”是当前世界税制改革的总趋势,目前内资企业所得税率为33%,很多外商投资企业和外国企业适用的所得税率为15%和24%.因此,税制改革已是必然。或许《福布斯》编制的税负指数更大的警示意义在于督促政府加快税收体制改革和税费改革,切实把降低国民负担水平当作头等大事来抓。我们与其闻福布斯的“报告” 心里“犯酸”,不如抓紧补齐改制的“短板”。
八、结语
尽管老百姓没有说过痛苦,别人也不能随意为群众代言痛苦,但各级政府决策者不能不触及到这种痛苦,察民忧而解民难。不妨把福布斯“税负痛苦指数”当成一种另类坐标,以草根人物的角度研究并排除其中的“痛苦隐患”,这对于全面建设小康,构建和谐社会,以税务杠杆更有力地撬动国家社会发展和民生幸福,善莫大焉。

13:19 |添加评论 |阅读评论 (1) |固定链接 |写入日志 |新闻与政治
3月10日
招搞定FireFox的吃内存问题
FireFox自从1.5版开始,占用内存严重的问题似乎让不少忠实的FFFs(FireFox Fans)感到郁闷。虽然Mozilla官方一再否认存在这样的问题,但我相信用户并不是白痴,也不是没事闹着玩偏要去说FireFox的坏话。我自己的第二浏览器就是FireFox,虽然我不是FireFox的忠实爱好者,但相比之处,基于IE核心的TheWorld浏览器在速度及内存占用方面更有优势。但如果你真的不想放弃FireFox,下面有一个非常简单的方法可以让你把FireFox的内存占用降到最低。我自己试了一下似乎挺管用的,分享如下。
这次也是Ryan,他基本上是一位大师级的FireFox专家,经常带来第一手FireFox动态及相关技巧,强烈推荐 FireFox爱好者去他那里看一下(记得要开代理啦)。言归正传,这个方法非常的简单,无需安装任何额外的软件,只需几个步骤。我以 FireFox1.5.0.1简体中文版为例:
1.打开FireFox,在地址栏里输入about:config
2.按右键,选择新建——>布尔
3.在弹出的框里输入config.trim_on_minimize
4.然后选True
5.重新启动FireFox
重启后将FireFox最小化,现在按CTRL+ALT+DEL调出任务管理器看看FireFox的内存占用是不是低于10MB了?对,这个简单的优化能让你在最小化、最大化FireFox的时候,把它占用的多余内存都释放出来;并且当你刷新网页的时候,一部分内存也会被释放掉,达到占用更少内存的目的。其实这是IE7以及Opera早就默认具备的特性,只是FireFox还没有加上而已,相信以后的版本会改善这种情况的。
16:44 |添加评论 |阅读评论 (1) |固定链接 |写入日志 |计算机与 Internet
4月11日
J2ME技术平台简介(三)
1.3.1 J2ME的最底层----C onfiguration
1.3.1.1 CLDC与CDC介绍
在最底层的Configuration规范,定义了硬件所必须具备的能力,比方说硬件至少具备多少ROM、RAM,CPU的时钟周期最少应该是多少,连接网络时频宽至少要多宽。Configuration规范之中定义了一组低级的API,这代表Java至少必须提供的低级功能,这组低级的API就是核心类库的子集合。
Sun在设计J2ME规范的时候,遵循着“对于各种不同的设备而创造出一个单一的开发平台是没有意义的事,但至少都该使用Java程序语言”这个基本原则来设计。这是因为嵌入式系统的种类太多样,实在无法使用某种统一的方法来规范。比方说硬要把电视上的Java程序能够跨平台到手机上执行,本身就不太具有意义。
J2ME应用于消费电子和嵌入式设备领域.这个领域的设备丰富多样,彼此的计算能力和各种硬件条件相差极大. J2ME首先根据最基本的一些特征把它们大致划分为两类:
(1)一种是资源有限,包括运算功能有限、电力供应有限、联机速度有限或是屏幕显示器大小与色彩有限的嵌入式设备,如手机、PDA等等。
(2)另一种是相对于前一种,这种设备通常运算能力相对较佳、并且在电力供应上、联机速度上相对比较充足的嵌入式设备,如冷气机、电冰箱、电视机顶盒等等。
有一个很好的概括:J2ME技术有两个设计中心,手持的设备和可以插到墙上插座的设备.第一类设备往往是个人化的,移动的,使用电池,体积和功耗都有限制,因此功能和计算能力有限;第二类设备一般是固定的,因此体积没有太大限制。由于固定,可以有持续电源供应,因此功耗没有太大问题,计算能力相对充裕.
计算能力是这两类设备的主要区别,对其上可能的应用和环境显然有着本质影响,不同类别的设备不可能采用同样的Java平台,必须分别定义。针对这两大类设备的平台规范就是Configuration。我们可以把Configuration当做是J2ME规定嵌入式设备要能够执行Java程序的规范,这些规范之中定义了这些设备至少要符合的运算能力、供电能力、内存大小等规范,同时也定义了一组在这些设备上执行的Java程序所能使用的类库。
第一类设备的Configuration称为CLDC(Connected Limited Device Configuration),有限连接设备配置(规范)。
第二类称为CDC(Connected Device Configuration),连接设备配置(规范)。
CLDC和CDC不同的地方就在于它们面向的设备的具体配置不同,如下表所示:
CLDC硬件要求
CDC硬件要求
512KB以下内存
2M以上内存
有限或者非持续网络连接(通常为无线网络)
具有持续性的网络连接能力
有限能源供应(通常使用电池)
有持续性的供电能力
16位或者32位的处理器
32位或者是64位的处理器
基于KVM虚拟机
使用功能强劲的CVM虚拟机
这些规范里面所定义的类库除了Java标准核心类库的子集合之外,也加入了与该类型设备特性相符的扩充类库。比方就CLDC的规范来说,可以支持的核心类库为java.lang.* 、 java.io.* 、java.util.* ,而支持的扩充类库为javax.microedition.io.* 。
CLCD和CDC都使用了一部分J2SE的开发类,并把这些J2SE的类进行了优化,把其中一些在微型设备中用不到的类,属性,方法去掉了,同时还添加了一部分针对移动设备而开发的类。而CLDC则完全是在CDC开发类的基础上进行优化的,没有添加自身需要的类。CLDC、CDC和J2SE的关系如图1-3所示:
目前CLDC的最高版本是CLDC1.1,它增加了不少新的特性:
a) 增加了浮点运算(对float,double类型的支持)
b) Calendar、Date和TimeZone类被重新设计
c) 错误处理方式被重新分类以及增加了一个新的错误类:NoClassDefFoundError
d) 修补了不少类库的错误
e) 最小内存限制从160K增加到192K,主要是因为增加了浮点运算
 
 

9:26 |添加评论 |阅读评论 (2) |固定链接 |写入日志 |J2ME
4月7日
J2ME技术平台简介(二)
所有平台的划分以J2SE为基准点,J2SE支持所有的核心类库以及8种基本类型。J2SE外面的Java平台(J2EE),也支持完整的核心类库及8种基本类型。反之,位于同心圆内部的Java平台(J2ME),所支持的就只是核心类库的子集合,所支持的Java基本类型也较少。
注意
在这里我们说“所支持的核心类库是标准核心类库的子集合”,也就是说,J2ME平台所使用的核心类库是从标准的核心类库删减而来,很可能有些类被删除了,而保留下来的类,也可能里面有的方法被删除了。
1.2.2 各种Java平台的不同之处
我们以J2SE作为基准,这个版本实现了所有Java标准规范之中所定义的核心类库,也支持所有的Java基本类型,J2SE定位在客户端(client-side)程序的应用上。
从J2SE往外延伸,其外面的同心圆为J2EE(Java 2 Enterprise Edition),此版本除了支持所有的标准核心类库之外,而且还增加了许多支持企业内部使用的扩充类库,比方说支持Servlet/JSP技术的javax.servlet.* 类库,支持Enterprise Java Bean的javax.ejb.* 类库。当然,J2EE必定支持所有的Java基本类型。J2EE定位在服务器端(server-side)程序的应用上。
从J2SE向内看,会看到里面是J2ME,它所支持的只有标准核心类库的子集合,比方说J2ME CLDC的规范之中,只支持java.lang.* 、java.io.* 以及java.util.* 这些类库。J2ME加入了一些支持嵌入式系统的扩充类库,如javax.microedition.io.* 类库。然而,此版本并不支持所有的Java基本类型,J2ME CLDC1.0就不支持属于浮点数(float、double)的Java基本类型,但是CLDC1.1规范已经支持浮点数运算,J2ME则定位在嵌入式系统的应用上。
1.3 J2ME技术架构
如同各种Sun所展现的Java技术,J2ME的每种相关技术都经由一定的步骤来制定。这个过程就叫做JCP(Java Community Process)。所有和J2ME相关的规范都可以在http://jcp.org/jsr/tech/j2me.jsp找到。
在整个规范的制定过程之中,有三个名词必须定义,分别是:JCP,JSR(Java Specification Request)以及Expert Group。如果以现实生活的例子来比喻,Expert Group就是国外的立法委员、JSR就是法律、JCP就是议事规则或宪法。国外所有的法律,都是立法委员遵循宪法和议事规则所制定。所以同样,Expert Group遵循JCP所制定的准则来制定各种Java规范(JSR)。Expert Group是由每一个领域的各家厂商分别派代表所组成,在国外的立法院里头有立法院长来主持所有的会议,同样的,Expert Group之中也有领导厂商负责统筹。Expert Group不一定只有公司才能参加,非营利的法人机构和个人也都可以参加。
J2ME最基本的规范制定在JSR-68(Java规范编号第68号),在此规范里头定义了J2ME的技术架构,如图1-2 所示:
 
根据此规范,J2ME由三种类型的规范堆栈而成,分别是Configuration,Profile以及Optional Packages。这三种类型的规范定义又由其他的规范的所定义。所以JSR-68属于一个规范的规范。
 
 
 
 
 
 

9:36 |添加评论 |阅读评论 (5) |固定链接 |写入日志 |J2ME
4月6日
J2ME技术平台简介(一)
1.1 J2ME基本概念
J2ME(Java 2 Micro Edition)是Java2的一个组成部分,它与J2SE、J2EE并称。根据Sun的定义:J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如寻呼机、移动电话、可视电话、数字机顶盒、汽车导航系统等等。它是为了那些使用有限的能源、有限的网络连接(常常是无线连接)以及有限图形用户界面能力的设备开发的,它最初的目标设备是具备16位或32位处理器,16MHz时钟频率,512K或更少内存的设备。
J2ME本质上是一个针对小型设备的Java版本,通过裁减某些在小型设备的不需要的功能,以达到减小Java虚拟机的体积以及相应运行库的体积的目标,目的是在小型设备上提供一个可靠,资源占有少的运行平台。
J2ME作为目前手机软件市场上比较热门的技术,其广阔的运行平台,良好的可移植性以及较短的开发周期,使其受到了大量的应用程序开发商、服务提供商和电信运营商的青睐。目前,市场上已经有多款手机支持J2ME,而且将来发展的趋势是大部分手机都支持J2ME技术平台。从目前手机发展的情况来看,彩屏加以彩屏为依托的各类手机娱乐功能慢慢增强,游戏作为手机生产商用以诱导购买者的一个亮点,必然会逐渐成了一种新的时尚和文化,而开发手机游戏和软件恰好又是J2ME技术的特长,因此要开发一款良好的手机软件,如果作用J2ME技术进行开发将是不错的选择。
1.2 了解J2ME与J2SE、J2EE的区别
1.2.1 Java平台的划分
一般我们在撰写C程序的时候,会使用C标准程序库;使用C++撰写程序的时候,会使用C++标准程序库;而使用Java撰写程序的时候,则使用Sun所提供的Java标准类库。之所以叫做类库,是因为各式各样的方法(method,也可以叫做“函数”)被有系统地放在类之中,而这些类又被分门别类地归属在不同的包(package)之下,这些各式各样的包(package),组成了所谓的核心类库(Core Class,即java.*),在核心类库之外还有所谓的扩充类库(Extended Class,即javax.*)。程序员可以自由选用各种程序库来完成自己的工作。
Java语言还支持8种基本数据类型(即boolean、char、byte、short、int、long、float、double),根据所支持的基本类型,以及对这些核心和扩充类库所支持的程序, Sun区分出三种不同的Java平台,如图所示:
 
 
 
 

9:38 |添加评论 |阅读评论 (2) |固定链接 |写入日志 |J2ME
4月3日
外人谈中国游戏市场
2002年
中村彰宪:
1 、对市场缺乏概念;
2 、太注重制作本土化的游戏,而不是面向全世界的;
3 、往往开发出一些在某些方面过于细节化,但与整体完全不相配的作品;
4 、往往因为更好的待遇而半途离职,完全没有职业道德;或者往往以离职作为要挟,寻求更高的薪水;
5 、极度资本主义化,一切都是为了钱;
6 、缺少向上级汇报的习惯,缺乏交流,也很少听取意见;
7 、缺乏变通,不能根据实际情况的变化改变先前的设计方案;
8 、对角色没有概念。他们的童年并没有经历过 Zelda 或者 Mario 这样的角色,“角色”对他们来说毫无意义;
9 、莫名其妙的优越感,总是自我感觉良好,觉得高人一等。
杰西卡·玛丽甘:数量不等于质量
请容我先对中国网络游戏业的同仁们说上一句:你们疯了。
疯得很到位。狂野而充满实验的味道,一次次将这个行业推向崭新的高度。正如历史上那些失去理智的伟人们,如居里夫人、爱迪生、郑和、特斯拉和福特,你们遵从着同样的疯狂理念:用力去推动某一事物,直到它轰然倒下,再从废墟上建造起一件更牢固、更优良的事物。
我很钦佩这种品质,也很欣赏你们的疯狂。
六年前,如果你告诉我未来会有 2000 万中国人愿意付费玩网络游戏,我会当面嘲笑你。但这能怪我吗? 1999 年 8 月,全世界只有不到 50 万人在付费玩网络游戏。我想大家应该能够原谅我僵化的思维。即便今天,你们的 2000 万的数字仍然比整个美国和欧洲的付费玩家数高出六倍甚至更多,而且差距在不断扩大。
你们让我们这些西方人感到惊讶。你瞧,三十年前是我们创造了网络游戏业,我们以为我们能够一直统治它。今天,争夺网游控制权的战争就像上世纪 60 年代各国之间的太空竞争,我们始终坚信最先登月的必定是我们国家。你可以想象一下,假如我们的宇航员在 1969 年登上月球后,发现你们已经在月球上建造并经营起了几座城市,还穿着“月球欢迎尼尔和埃德温(译者注:人类首次登上月球的两名美国宇航员)”的 T 恤,手里拿着飞往火星的打折飞船票,站在外面迎接我们,我们会是怎样的感受?
这简直让人感到羞耻。当然,一款西方的产品——《魔兽世界》——已经成为时下全球最火爆的网络游戏。但别忘了,至少有一款来自中国本土的游戏击败了《魔兽世界》,其峰值同时在线比《魔兽世界》高出一倍(译者注:指《梦幻西游》)。这意味着什么?如果你们的市场继续以过去六年来的速度成长,那么在未来六年里,中国将占据全球市场。这些日子我们在美国学会了一句中国话:“我们不再是世界市场领导。”
我们作为美国和欧洲网游行业的一员,并没有因此而感到痛苦。相反,我们很羡慕你们。羡慕你们拥有充满激情的用户;羡慕你们的年轻和敢于拓荒;羡慕你们低廉的开发成本,这让你们能够尝试各种新的风格和类型;羡慕你们愿意尝试一切的心态;甚至羡慕你们政府毫无保留的支持——他们宣布投入 10 亿元人民币用于开发 100 款游戏,以帮助开发者更快地成长起来。这在美国永远不会发生,除非哈里伯顿( Halliburton )或埃克森( Exxon )也开始成立网络游戏事业部(译者注:美国的两家石油巨头)。
既然如此,我还能对你们说些什么?
事实上有很多。你们还没有学会从我们所犯的错误中汲取教训,相信我,你们还有很多需要学习的地方。我们将在未来的几个月里讨论这些问题,不过现在,请允许我先给你们三个简短的忠告。
1 、数量不等于质量。我之所以这么说是因为我觉得你们正在犯下一些错误,这些错误我们在上世纪 90 年代已经犯过——尽可能多地开发网络游戏,寄希望于其中几款能够获得市场的认可,使自己一举成为市场领导者。这种做法就像是拿着一把散弹枪去射杀一只苍蝇,也许你能做到,但在做到之前你需要耗费大把大把的弹药。
以我的经验来看,这是一个巨大的错误。无论怎样的市场,无论 MMORPG 还是休闲游戏,最终吸引玩家的都将是产品质量。这里的产品质量包括多个方面,例如游戏性、客户服务、便捷性、收费模式等。与其以散弹枪的方式同时开发三款游戏,不如拿出三倍于此的时间开发一款游戏,以保证这款游戏在上述几个方面都能做好。
回顾历史,你会发现美国公司追求数量的时期是在 1994 年到 1998 年,这一做法不仅宣告失败,更糟糕的是,它留下了一个加州大小的冒着烟的巨大弹坑。那时约有 130 多款网络游戏被投入研发,最后能够运营的只有不到 10 款。这足足浪费了 2 亿美元的研发费用,无论以怎样的标准衡量,损失都是惨重的。这等于是驾着小船跑到离岸 200 公里的海上,投下 16 亿人民币,然后把船敲沉,自己再游回岸边。
这个故事告诉我们:数量不等于质量。
2 、越小越好。我之所以说“越小越好”,因为我认为最优秀的创意和游戏往往来自那些以热情去工作的小公司。这一点在我们这里已经被证实了很多次。成功往往意味着创造力的日渐消逝,与之相伴的是不断增加的派系斗争和一无是处的官僚作风。没有人希望看到这一切,但它确实会发生,这是公司这头野兽的天性。
看看网游领域内的任何一家美国或韩国公司,在最初的成功后,有谁还能继续开发出真正成功的游戏?只有那些规模较小的外部工作室,他们能做到这一点。
在分配政府拨款,或是门户网站和运营商们决定如何在网游开发上投钱的时候,请记住这个教训。
3 、别在游戏还没做好前就把它们推向市场。这是几年来我们在美国和欧洲一直犯的另一个错误,而且未来也会定期犯类似的错误。看看现在在美国和欧洲运营的那些游戏,有多少因为不稳定的技术而崩溃,或是遗漏了关键的功能,或是两者兼具。对此没什么可辩解的,即便是“没钱了”也不能拿来作为你的借口。
除了做到技术上的稳定,以及拥有被我们的竞争对手训练出来的、大部分或所有玩家都在期待的游戏特性外,要在今天如此拥挤的市场上取得成功,你的游戏还必须有一些独特之处。这里所说的“独特之处”可能很简单,例如在某些特性上比其它游戏作得更好,或是拥有全球最优良的、反应最迅速的客户服务系统;也可能很复杂、有着很高的风险,例如加入其它游戏中从未出现过的特性。
仅仅依靠抄袭现有的东西已经远远不够了,市场的先发优势已经丧失,要想成功,你就必须击败对手,而不是效仿对手。
 
9:50 |添加评论 |阅读评论 (2) |固定链接 |写入日志 |乱弹江湖
© 2011 Microsoft
使用条款
隐私声明
关于我们的广告
广告
行为准则
安全
帮助中心
反馈
举报不良信息
简体中文
');}} //]]>