04 2007 档案
摘要:论题1. 正方形刷子的边表法大意a = 正方形半宽;// 前期边界处理// ...for (x = x0; x <= x1; x++){y = 用Bresenham算法生成;yU = y + a;yD = y - a;为(x + a)处创建活动表;[x - a, x + a]边表区间用和[yU, yD]相与值更新;// 除(x + a)处外,其余的只需更新区间的一侧用(x - a)处的区间绘制一竖线,并删除该活动表;}// 后期边界处理// ...附:图形学教学网站:http://necweb.neu.edu.cn/ncourse/tuxingxue/
阅读全文
摘要:习题IV.2 定义f为仿射保持(Affine Preserved)的,如果对任意向量x1和x2有f((1 - a) * x1 + a * x2) = (1 - a) * f(x1) + a * f(x2),证明:f仿射保持的充要条件是f是仿射变换。 证:充分性易证,只证必要性。由仿射保持性,f(a * x)= f(a * x + (1 - a) * 0) = a * f(x) + (1 - a) * f(0)。令g(x) = f(x) - f(0),则g(a * x) = a * g(x),即g满足乘法不变性。又g(0.5 * x1 + 0.5 * x2) = f(0.5 * x1 + ...
阅读全文
摘要:dede提出了一个用互斥量(Mutex)模拟信号量(Semaphore)的课题,非常有趣。 dede提出的方案应该这样,用i作为状态标识: lock(i_m); if (i > 0) { i--; unlock(i_m); enter_critical_region(); lock(i_m); i++; unlock(i_m); } else { unlock(i_m); lock(m); enter_critical_region(); unlock(m); } 如果没有理解错,信号量用于限制可同时进入关键区域的线程个数,而i也起到这个目的。那么当线程陆续创建并陆续退出的时候(在一定时
阅读全文
摘要:以前以为投影也就投影了,并不了解投影也可视作坐标变换,而且也是一个齐次坐标(Homogeneous Coordinate)系的坐标变换。因此书中的介绍一开始也不明白——它说透视投影会把直线映射成曲线,还特地验证一下,发现投影为2D空间(摄像机平面)并不会发生这种情况,在仔细一看才知道,它指的是映射到3D空间,在z方向发生了畸变。而后逐渐了解,原来z方向的位置信息(depth)在渲染级模块处(所谓的Z-Buffer)有特殊用处(直线上每个点的depth均通过直线两端的点线性插值完成,因此可能造成depth位序异常)。当然这个问题在某些场合是不会发生的,例如完全基于光线跟踪算法的渲染并不是这样..
阅读全文
摘要:假定函数原型: int test (int r0, int r1, int r2, int ext1); 发生函数调用时,如: // ... test(a, b, c, d); // ... 编译器会将局部变量a,b,c在函数调用附近分别处理到寄存器R0,R1,R2中,而更高的参量,如ext1,则顺次从字节地址SP+0xC位置开始存放。在执行CALL指令调用子程序的时候,堆栈寄存器FP和SP仍不发生变化,直到,执行LINK指令,寄存器将发生如下变化: 1. [--SP] = RETS; 2. [--SP] = FP; 3. FP = SP; // FP+0保存原FP,F...
阅读全文

浙公网安备 33010602011771号