
Math
King.W.
这个作者很懒,什么都没留下…
展开
-
4x4矩阵求逆
最近学习自定义光栅化渲染器,在学习矩阵变换的时候,求矩阵的逆矩阵的时候遇到的一些问题,特记录在此。typedef struct MATRIX3X3_TYPE // 3×3矩阵 { union { double M[3][3]; struct { double原创 2016-04-07 20:48:52 · 15848 阅读 · 2 评论 -
点绕点旋转->点绕坐标轴旋转
最近看irrlicht源码,在include/core中的vector2d.h中有一个函数rotateBy()。其计算原理如下: // vector2d的一个成员函数 void rotateBy(f64 degrees, const vector2d<T>& center) { degrees *=gradPI2; T cs = (T)cos(d原创 2016-04-07 20:54:05 · 5456 阅读 · 0 评论 -
线性内插和双线性内插
一、线性内插假设我们已知坐标(x0,y0)与(x1,y1),要得到[x0,x1]区间内某一位置x在直线上的y值。根据图中所示,假设AB上有一点(x,y),可作出两个相似三角形,我们得到(y-y0)/(y1-y0)=(x0-x)/(x0-x1) 假设方程两边的值为α,那么这个值就是插值系数—从x0到x的距离与从x0到x1距离的比值。假设x值已知,所以可以从公式得到α的值 : α=(x-x0)/(x1转载 2016-04-19 17:27:30 · 15708 阅读 · 1 评论 -
C语言中的atan(k)和atan2(y,x)
在C语言的math.h或C++中的cmath中有两个求反正切的函数atan(double x)与atan2(double y,double x) 他们返回的值是弧度 要转化为角度再自己处理下。前者接受的是一个正切值(直线的斜率)得到夹角,但是由于正切的规律性本可以有两个角度的但它却只返回一个,因为atan的值域是从-90~90 也就是它只处理一四象限,所以一般不用它。第二个atan2(double转载 2016-08-16 17:44:52 · 1224 阅读 · 0 评论