随笔分类 - 物理和数学算法
摘要:2D缩放的数学形式:Sx代表x方向的缩放量,Sy代表y方向的缩放量。当Sx=Sy代表等比例缩放。例如:将下图的矩形ABCD放大3倍。设A(10,10),那么缩放后的A',将通过下列计算获得A'(30,30)。同理可以计算出缩放后的B'(150,30), C'(150,120),和 D'(30,120)。如图:虚线框表示的为缩放前的图形,实线框表示为缩放后的图形。2D缩放在计算机中的实现:[代码]3...
阅读全文
摘要:点的平移,可以通过矩阵相加和相乘来模拟。2D加法平移:例如:点A(20,30),向右移50个像素,向下移100个像素,得到A'。那么A'(70,-70)。3D加法平移:例如:计算机中实现:[代码]2D乘法平移:例如:计算机中的实现:[代码]3D乘法平移:例如:计算机中的实现:[代码]
阅读全文
摘要:矩阵数乘数学形式:计算机中矩阵数乘的实现:[代码]矩阵的乘法:计算机中矩阵乘法的实现:矩阵乘法Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--Matrix3X1multiplyMatrixNxM(Matrix3X3a,Matrix3X1b){Matri...
阅读全文
摘要:矩阵加法数学表示矩阵减法数学表示:计算机中矩阵加法的实现:[代码]计算机中矩阵减法的实现:[代码]
阅读全文
摘要:矩阵通常在游戏处理表示有行和列的数据。只有一行的矩阵,我们可以将其看成一个矢量。数学表示:如图在计算机中的表示:矩阵的在计算机中通常有一个二维数组来表示。下面是一个三行三列的矩阵。[代码]矩阵相等:矩阵的行数和列数相等,并且对应行列的数值也要相等。计算机判定实现两矩阵是否相等。[代码]矩阵的转置数学表示矩阵的转置的计算机中的实现[代码]
阅读全文
摘要:代数中的乘法应称为数乘,比如2×3=6,2·3=6。但是在几何中2·3为点积,2×3为叉积。 1.点积 A·B=|A| |B| cosq 2D:定义矢量A[a1,a2],矢量B[b1,b2] ;那么点积A·B=a1b1+a2b2。 3D:定义矢量A[a1,a2,a3],矢量B[b1,b2,b3] ;那么点积A·B=a1b1+a2b2+a3b3。 性质: 如果A·B = 0, 那么A┴B。 A·B ...
阅读全文
摘要:一个矢量,它的几何图形的表示为一个带箭头的线段,线段大小为矢量的大小(矢量的模),箭头的方向为矢量的方向。如图: 矢量的可以用平行四边形法则来进行计算。如下图,虚线表示的B和实线表示的B是等价的,即我们认为是相等的。 矢量的加法计算如图 设A=a1i+a2j , B=b1i+b2j那么A+B=(a1+b1)i+(a2+b2)j 一些性质: 矢量A和B,A+B=B+A |A+B|不等于|...
阅读全文
摘要:在1D的系统中利用正负去表示矢量是足够的,但是在2D和3D的系统中利用正负去表示矢量就不是很足够了。但是如果用极坐标系统去表示的话,就会比较直观。 极坐标表示矢量: 矢量 Ā=||A||@ θ (||A||代表大小, θ代表方向) 笛卡尔坐标表示矢量: (i代表x的方向,j代表y的方向) 极坐标和笛卡尔坐标相互转换: b1=||B||*cosθ b2=||B||*si...
阅读全文
摘要:1.标量 标量只有大小没有方向。 2.矢量 矢量既有大小又有方向。 3.常用举例: 物理上常用的矢量与标量的对应概念有:速度和速率;距离和位移等。如图: 距离: 假设A到B的距离为a,B到C的距离为b,C到D的距离为c; 那么A到D的距离就为a+b+c。 位移: 假设A到B的位移为a,B到C的位移为b,C到D的位移为c; 那么A到D的位移大小为|a+b+c|(数学上也叫a+b+c的模),方向是从...
阅读全文
摘要:三角代数里的公式推理思路都是通过单位圆来完成的。 在单位圆中有x2+y2=1。下图为一单位圆: 推论出的公式: cos2a + sin2a = 1 sin(–a) = –sina cos(–a) = cosa tan(–a) = –tana sin(a1 + a2) = sina1cosa2 + cosa1sina2 sin(a1 – a2) = sina1cosa2 – cosa1sina...
阅读全文
摘要:三角函数在计算机游戏开发中是经常被用到的。 主要三角函数 sin a=b/c cos a=a/c tan a=b/a 其他三角函数 csc a=c/b=1/ sin a sec a=c/a=1/ cos a cot a=a/b=1/ tan a 常用三角函数函数值表 a (D...
阅读全文
摘要:我们通常使用的笛卡尔坐标系统,角点通常在(0,0),即原点。初始边在x轴正半轴,终边与初始边成夹角。 初始边逆时针旋转为正值,顺时针旋转为逆值。 数学表示: 角度:degree=radian*180/π 弧度:radian=degree*π/180 π≈3.141592654 例如:120◦转换为弧度为2π/3 计算机中的实现: #define RadToDeg 5...
阅读全文
摘要:1.圆的碰撞检测 圆的碰撞条件: 当两个圆相切或者相交时,我们认为两个圆应该开始发生碰撞。 数学表示: 计算机中的实现: 两圆之间的碰撞 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->bool CollisionBetweenCircles(c...
阅读全文
摘要:1.圆(2D) 圆的两个关键因素:圆心和半径。 公式: (x–h)2 + (y–k)2 = r2 圆心为(h,k) 半径为r. 举例:圆心为(1,2),半径为2的圆。 计算机中的实现: 定义一个圆 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-...
阅读全文
摘要:抛物线 如果你投掷一个铅球或者踢足球,它们将做一个抛物线运动。因为它们总是受一个垂直于地面的重力加速度g的作用。下图为四个方向上的抛物线。 公式: 垂直轴向上的抛物线:y=a(x–h)2+k, 顶点为(h,k),关于x=h对称. 水平轴向上的抛物线:x=a(y–k)2+h, 顶点为(h,k),关于y=k对称. 举例:
阅读全文
摘要:1.计算两点之间的距离 公式:a2+b2=c2(勾股定理) 2D: 3D: 计算机实现: 2D距离 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->float Distance2D(Point2D p1,Point2D p2) {...
阅读全文
摘要:直线公式: Ax + By = C (A和B不能同时为0) 讨论: A和B不为0:为斜线(不垂直于x轴和y轴); A为0,B不为0:直线为垂直于y轴的直线,且于y轴交与点(0,C/B); A不为0,B为0:直线为垂直于x轴的直线,且于x轴交与点(C/A,0); 例1: 例2: 斜率: 定义斜率: 2D斜率 Code highlighting produced by Actipro Code...
阅读全文
摘要:数学中的坐标系统(笛卡尔坐标系统) 这里A(0,0), B(1,2), C(4,3), D(–1,2), E(–2,–1), F(3,–2). 计算机中的坐标系统(屏幕坐标系统) 注意这里的y轴在两个坐标系统是相反的。在后面将会研究将笛卡尔坐标系统转换为屏幕坐标系统。 在3D的坐标系中,没有一个工业标准,有的采用y轴向上(y-up)的坐标系,有的采用z轴向上(z-up)的坐标系,有的采用右手坐...
阅读全文

浙公网安备 33010602011771号