摘要:
缩放变换:用矩阵来表示变换 矩阵反射:即矩阵沿着某一个轴对称 切变变换: 旋转变换: 平移变换:平移变换需要在后面加上位移变换,此时的表达式就不是线性变换了,引入齐次坐标来解决这个问题 引入新的定义,把二维空间中的点和向量改变,在后面拓展一位,1结尾为点,0结尾为向量,然后对应的矩阵也要拓展,即可获 阅读全文
摘要:
Monte Carlo Integration :蒙特卡罗积分,近似求定积分的一种方法,取某个点xi,对应的y值做矩形,此矩形近似等于定积分面积,然后取多次求平均 求出概率密度函数pdf,就可以解出定积分,一般使用平均采样,使得概率密度函数是常数,概率密度函数在自变量区间内对dx进行积分就是概率之和 阅读全文
摘要:
图形学中能量是一种简称,即单位时间内的能量,也就是功率 intensity:在一个单位立体角上的能量 立体角:在单位球上,一块对着球心的面积除以半径的平方,此时半径为1,立体角即为面积,通俗说为一个三角锥 微分立体角:看最终结果,说明立体角在球面上的变化并不是均匀的 注意:dA是微小面积,dw是立体 阅读全文
摘要:
顶层const表示指针本身是个常量,底层const表示指针所指的对象是常量。其比较绕的地方是顶层const和底层const之间的拷贝(赋值)关系 1 void testConst2() { 2 3 int i = 0; 4 int* const p1 = &i; //顶层const 5 const 阅读全文
摘要:
图是非线性结构,有两种存储结构,一种是邻接矩阵,另一种是邻接表。 邻接矩阵用一个二维数组来表示。 代码如下: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define max_len 100 4 5 typedef struct node{ 6 int n 阅读全文
摘要:
折半插入排序:直接插入排序是将待插入元素与前面的元素一一比较,寻找合适的位置插入。而折半插入是通过折半来查找位置,所谓折半(可以参考二分查找)就是定义两个变量分别指向头start和尾end,取其中间值mid。如果待插入元素大于mid位置上的元素就这mid和end之间再查找,如果小于,则在start和 阅读全文
摘要:
首先是哈夫曼树的定义:在一棵二叉树中,带权路径长度达到最小,成这样的树是最优二叉树,也是哈弗曼树。大概意思就是把数值大的节点放在树上面,数值小的节点放在树下面。哈夫曼树的结构使用顺序结构,这里直接使用了数组。 建造哈弗曼树的思路:根据二叉树的性质,有n个叶子节点,二叉树就会有2n-1个节点。定义一个 阅读全文
摘要:
基数排序的思想总体上就是把一组数中的所有数按照个十百位来改变在数组中的位置,分配十个桶(存放数的容器)对应0~9。比如在比较个位数时,把个位数为0的所有数放在第一个桶内,个位数为1的数放在第二个桶内,依次放入。在所有的数放完之后,此时数组内的数已经改变了位置,再比较十位数,重复上述操作,直到最大位数 阅读全文
摘要:
1 #include <vector> 2 #include <iostream> 3 4 using namespace std; 5 6 void Merge(vector<int>& data, vector<int>& temp, int left, int right, int mid) 阅读全文
摘要:
直接插入排序 将数组分为有序区和无序区,开始时第一个元素就是有序区,与第二个元素比较,第一二元素排好序后,再将第三个元素与前2个元素比较插入到合适的位置。后面依次操作。 0下标的元素作为比较元素(哨兵),从下标1开始进行排序。将待插入元素赋值给哨兵,让哨兵与前面有序的元素一一比较,寻找合适的位置,插 阅读全文