2010年10月8日

顶点坐标变换

摘要: 5/20/2008 5:38:31 AM通过坐标变换将3D空间的图元转换成2D图元的过程:主要为世界变换->视图变换->投影变换->视口变换3D场景中的任何物体,都是由一个一个三角形组成的。而三角形位置信息的就是其各个顶点的三维坐标。这是用来在模型中存储的,而要把物体显示在屏幕上,还需要将它们转换成显示器上的二维坐标。这就需要对每个点实施一套 3D to 2D 的转换公式,在Di... 阅读全文

posted @ 2010-10-08 16:14 阿蒙1024 阅读(1209) 评论(0) 推荐(0)

提高程序效率小技巧

摘要: 5/17/2007 3:03:57 PM1 使用循环展开,对于循环内部只有一条语句可以采用循环展开来提升速度.2 对于2的倍数除法使用&运算,如 30 除 4 的余数为 30 & 3,30 类最大的4的倍数为30 & ~3.一个数是否为2的幂 n & 1. 而判断一个变量中含有多少个1可以3 对于一些只需要初始化一次的函数内部变量可以声明为static类型4 对于过... 阅读全文

posted @ 2010-10-08 15:49 阿蒙1024 阅读(195) 评论(0) 推荐(0)

D3DCREATE_FPU_PRESERVE

摘要: 4/15/2008 6:29:21 AM 在FPU中,却存在着三种运算精度:single precision(24bits),double precision(53bits)(一般应用程序启动时的精度),double extended precision(64bits,很少用)。FPU的默认精度是53bits的double precision。D3D的CreateDevice函数调用后会将FPU的... 阅读全文

posted @ 2010-10-08 15:30 阿蒙1024 阅读(1293) 评论(0) 推荐(1)

使用 IPicture 和 MemDC

摘要: 6/16/2007 2:38:32 PM 前一段时间,用MFC作个界面程序:画图并在上面写一段文字。原来用IPicture 在DC上 Render ,然后用DC TextOut 出文字,结果文字闪耀。在 OnEraseBkgnd(CDC* pDC) 用了 Mem dc 也没有起作用, 初始还以为刷新快不能做到不闪耀,后来才发现 mem dc 忘了设置 Bitmap ,没有 bitmap 对于内存d... 阅读全文

posted @ 2010-10-08 15:20 阿蒙1024 阅读(838) 评论(0) 推荐(0)

单字符宽字符互相转换

摘要: 5/11/2007 8:44:09 AM#include <stdlib.h> size_t mbstowcs(wchar_t *pwcs, const char *s, size_t n); //转换单字符串为宽字符串size_t wcstombs(char *mbstr, const wchar_t *wcstr, size_t count ); //转换宽字符串为单字符串例如:C... 阅读全文

posted @ 2010-10-08 15:10 阿蒙1024 阅读(1159) 评论(0) 推荐(0)

使用c函数获取文件大小

摘要: 使用c函数获取文件大小5/11/2007 9:31:34 AM如果文件大于 4G ,就要用64 位的 __int64 _ftelli64(FILE *stream );删除文件可以使用函数: int _unlink(const char *filename ); 获取当前路径是: char *_getcwd(char *buffer, int maxlen );如果文件大于 4G ,就要用64 位... 阅读全文

posted @ 2010-10-08 15:07 阿蒙1024 阅读(2392) 评论(0) 推荐(0)

快速平方根(平方根倒数)算法

摘要: 9/27/2006 6:13:45 AM 非红色字为转载。唠叨两句:对于p4的cpu硬件都有 fsqrt 求浮点数开方指令,如果好点的支持sse的更有1次求出4个浮点数的开方指令。如果拿算法跟这些硬件指令比,算法速度肯定是不行的。但还有其他众多的cpu,对于硬件不支持的还是可以参考一下。 的确,正如许多人所说的那样,现在有有FPU,有3DNow,有SIMD,讨论软件算法好像不合时宜。关于sqrt的... 阅读全文

posted @ 2010-10-08 15:03 阿蒙1024 阅读(3514) 评论(1) 推荐(1)

stl应用常见问题

摘要: 9/25/2006 12:26:25 PM1. 编译器的解析 list<int> data(istream_iterator<int>(cin),istream_iterator<int>());这不是声明一个list变量 data,而是被认为是一格函数声明. 可以使用如下方法(effective stl 有讲)istream_iterator<int&g... 阅读全文

posted @ 2010-10-08 13:17 阿蒙1024 阅读(487) 评论(0) 推荐(0)

导航