
计算机图形学
caimouse
在IT行业有20多年的经验。拥有20多年的C和C++开发经验,5年以上Python开发经验,资深数据库开发、上百G数据库优化经验。曾经任职嵌入式工程师、P2P开发工程师、银行信用卡交易系统工程师、全自动化电池测试部门经理。
展开
-
清华的计算机图形学课程
这个课程不错,连接如下:http://cg.cs.tsinghua.edu.cn/course/resource_main.htm1. C++标准模板库从入门到精通 http://edu.youkuaiyun.com/course/detail/33242.跟老菜鸟学C++http://edu.youkuaiyun.com/course/detail/29013. 跟老菜鸟学pythonhttp://edu.csdn.n原创 2017-01-07 10:24:08 · 2074 阅读 · 0 评论 -
为什么要使用四元数
为 了回答这个问题,先来看看一般关于旋转(面向)的描述方法-欧拉描述法。它使用最简单的x,y,z值来分别表示在x,y,z轴上的旋转角度,其取值为 0-360(或者0-2pi),一般使用roll,pitch,yaw来表示这些分量的旋转值。需要注意的是,这里的旋转是针对世界坐标系说的,这意味着 第一次的旋转不会影响第二、三次的转轴,简单的说,三角度系统无法表现任意轴的旋转,只要一开始旋转,物体本身就失原创 2017-02-17 11:36:07 · 4724 阅读 · 1 评论 -
D3D中四元数的表示
1、定义。DIRECTX9文档中定义,令q为一四元数,theta为绕轴axis旋转的角度,则:q.x = sin(theta/2) * axis.xq.y = sin(theta/2) * axis.yq.z = sin(theta/2) * axis.zq.w = cos(theta/2)可以简单写为:q = [sin(theta/2)axis, sin(theta/2)w] 或者 [x,y,z原创 2017-02-17 14:33:36 · 2183 阅读 · 0 评论 -
为什么要使用矩阵
我们不妨回忆一下,矩阵是怎么产生的。矩阵可以看成是一个个向量的有序组合,这说明矩阵可以类比向量;但是向量又是怎么产生的?向量则是一个个数字的有序组合,这又把我们的研究方向指向了“数字是什么”这个问题上。比如,数字1是什么?它可以代表1米,可以代表1千克,也可以代表1分钟、1摄氏度甚至1个苹果。它为什么有这么多的表示意义?答案很简单,因为在本质上,它什么都不是,它就是数字1,一个记号,一个抽象的概念原创 2017-02-09 13:34:36 · 5407 阅读 · 0 评论 -
矩阵的定义
在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合[1] ,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。[2] 在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;计算机科学中,三维动画制作也需要用到矩阵。 矩阵的运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组原创 2017-02-09 13:47:21 · 5230 阅读 · 0 评论 -
mt19937是什么鬼?
今天看一个C++的例子,突然看到这个mt19937,起先还以为是什么地方搞错了,怎么会有这个怪的名称呢?这个名称是mt1937? 代表1937年?心里一开始有这个疑问。代码如下:std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dist(-10, 10); std::vector原创 2017-02-18 16:20:14 · 39342 阅读 · 1 评论 -
计算机视觉,计算机图形学和数字图像处理
计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取‘信息’的人工智能系统。这里所 指的信息指Shannon定义的,可以用来帮助做一个“决定”的信息。因为感知可以看作是原创 2017-02-19 15:46:00 · 3805 阅读 · 0 评论 -
计算机图形学的主要研究内容是什么?
计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。 简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。从处理技术上来看,图形主要分为两类,一类是基于线条信息表示的,如工原创 2017-02-19 16:12:55 · 11289 阅读 · 0 评论 -
计算机输出设备
输出设备(Output Device)是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。常见的输出设备有显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。Definition - What does Output Device mean?An output device is原创 2017-02-20 14:22:17 · 3530 阅读 · 0 评论 -
矩阵的乘法
小明今天要做饭,消耗2斤肉,1斤蔬菜。肉每斤20元,蔬菜每斤5元,则一共需多少花费?这个问题的答案很简单:<img src="https://pic1.zhimg.com/0443f0bc0fdafcdb8ae96a032b146a64_b.jpg" data-rawwidth="155" data-rawheight="28&quo原创 2017-02-12 14:14:00 · 2720 阅读 · 0 评论 -
方形矩阵的行列式
行列式在数学中,是一个函数,其定义域为det的矩阵A,取值为一个标量,写作det(A)或 | A | 。行列式可以看做是有向面积或体积的概念在一般的欧几里得空间中的推广。或者说,在 n 维欧几里得空间中,行列式描述的是一个线性变换对“体积”所造成的影响。无论是在线性代数、多项式理论,还是在微积分学中(比如说换元积分法中),行列式作为基本的数学工具,都有着重要的应用。行列式是一个数,一个进行特定运算原创 2017-02-12 15:09:11 · 4511 阅读 · 0 评论 -
什么是光栅显示
光栅由大量等宽等间距的平行狭缝构成的光学器件称为光栅(grating)。一般常用的光栅是在玻璃片上刻出大量平行刻痕制成,刻痕为不透光部分,两刻痕之间的光滑部分可以透光,相当于一狭缝。精制的光栅,在1cm宽度内刻有几千条乃至上万条刻痕。这种利用透射光衍射的光栅称为透射光栅,还有利用两刻痕间的反射光衍射的光栅,如在镀有金属层的表面上刻出许多平行刻痕,两刻痕间的光滑金属面可以反射光,这种光栅称为反射光栅原创 2017-02-21 18:27:57 · 4669 阅读 · 0 评论 -
矩阵的转置
设A为m×n阶矩阵(即m行n列),第i 行j 列的元素是a(i,j),即:A=a(i,j)定义A的转置为这样一个n×m阶矩阵B,满足B=a(j,i),即 b (i,j)=a (j,i)(B的第i行第j列元素是A的第j行第i列元素),记A'=B。(有些书记为AT=B,这里T为A的上标)直观来看,将A的所有元素绕着一条从第1行第1列元素出发的右下方45度的射线作镜面反转,即得到A的转置。1. det(原创 2017-02-13 14:05:46 · 6904 阅读 · 0 评论 -
矩阵的逆
设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E。 则我们称B是A的逆矩阵,而A则被称为可逆矩阵。E为n阶单位矩阵。求逆矩阵的方法:1. 高斯消元法2. 克莱姆法则克莱姆法则,又译克拉默法则(Cramer's Rule)是线性代数中一个关于求解线性方程组的定理。它适用于变量和方程数目相等的线性方程组,是瑞士数学家克莱姆(1704-1752)于1750年,在他的原创 2017-02-13 15:31:58 · 3496 阅读 · 0 评论 -
线性变换和仿射变换
1. 线性变换设v、w是两个线性空间.一个v至w的线性映射T,就称为v至w的线性变换.线性变换必须满足任意的x,y∈v 及任意实数a,b,有 T(ax+by)=aT(x)+bT(y)如恒等变换 I .v→v,对任意的x∈v,有 I(x)=x因为 I(ax+by)=ax+by= a I(x)+b I(y) 满足 T(ax+by)=aT(x)+bT(y)所以 I 是线性变换.几何上恒等变换不改变图形的原创 2017-02-13 15:59:59 · 5974 阅读 · 0 评论 -
点的变换和法向量的变换
在三维空间里,点的变换是通过仿射变换的,所以使用齐次坐标的变换矩阵来变换。不过,当一个点作矩阵M变换时,这个点的法向量是否也可以使用矩阵M来变换呢?答案是不行,只是在特殊的情况是可以,比如没有变形的变换。如果有变形的变换,就需要使用特殊矩阵:M矩阵的逆的转置矩阵。具体的推导过程,可以参考下面的文章:http://blog.youkuaiyun.com/dengyibing/article/details/51原创 2017-02-13 17:52:51 · 3578 阅读 · 0 评论 -
欧拉角的万向节锁
Gimbal LockWhat's Gimbal Lock?Gimbal lock is the phenomenon of two rotational axis of an object pointing in the same direction. Actually, if two axis of the object become aligned, then we say that the原创 2017-02-16 18:07:14 · 1167 阅读 · 0 评论 -
什么是欧拉角?
什么是欧拉角?用一句话说,欧拉角就是物体绕坐标系三个坐标轴(x,y,z轴)的旋转角度。在这里,坐标系可以是世界坐标系,也可以是物体坐标系,旋转顺序也是任意的,可以是xyz,xzy,yxz,zxy,yzx,zyx中的任何一种,甚至可以是xyx,xyy,xzz,zxz等等等等。。。。。。所以说欧拉角多种多样。欧拉角可分为两种情况:1,静态:即绕世界坐标系三个轴的旋转,由于物体旋转过程中坐标轴保持静止,原创 2017-02-16 15:58:52 · 20905 阅读 · 4 评论 -
牛顿迭代公式
牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程原创 2017-02-16 14:21:02 · 7488 阅读 · 0 评论 -
做计算机图形学研究需要哪些基本技能?
数学 (Mathematics)“数学不是没有用,而是不够用!”分析和代数:数学分析、线性代数、矩阵方程组、群论几何:解析几何、微分几何、黎曼几何、拓扑学数值方法:最优化、数值解概率、统计、抽样法…编程 (Programming)“编程能将你脑中的想法得到实现并看到”C/C++计算机技术:计算机体系、网络…擅长各种专业应用软件Matlab, Photoshop, 3D Max, Maya, Aut原创 2017-01-07 10:52:20 · 3019 阅读 · 0 评论 -
数学在计算机图形学中的应用
数学在计算机图形学中的应用刘利刚中国科学技术大学http://staff.ustc.edu.cn/~lgliu【注】 本文由Greg Turk. “Mathematics for Computer Graphics, August 1997.” 及网上的中文翻译整理及扩充而得。 “学习计算机图形学需要多少的数学?”这是初学者最经常问的问题。狭义的计算机图形学指的是传统的三维建模,绘制,动画等,而广转载 2017-01-07 11:10:21 · 1687 阅读 · 0 评论 -
计算机图形学常用算法
http://blog.youkuaiyun.com/orbit/article/details/7082678对学习计算机编程比较直观。1. C++标准模板库从入门到精通 http://edu.youkuaiyun.com/course/detail/33242.跟老菜鸟学C++http://edu.youkuaiyun.com/course/detail/29013. 跟老菜鸟学pythonhttp://edu.youkuaiyun.com转载 2017-01-08 08:17:37 · 2864 阅读 · 0 评论 -
什么是计算机图形学?
在学习游戏编程中,一定会遇到计算机图形学,但计算机图形学是什么呢?怎么样来学习它呢?百度解释:计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。中国科技大学 刘利刚老师的解释:http://st原创 2017-01-10 09:04:52 · 7015 阅读 · 1 评论 -
点积的应用
点积有两个特性,一个是可以计算长度,一个是可以计算夹角。利用这两个特性就可以用来解决仿射空间里的一些问题,比如计算圆点P(a, b, 1),半径为r的圆:根据计算长度的公式,就要写出:(x - a)^2 + (y - b)^2 = r^2比如三维仿射空间里有一点P(1, 2, 3, 1), 向量v(2, 2,3, 0),如果需要一个平面是经过P点,同时又与向量v垂直,根据计算夹角公式(Q - P)原创 2017-02-06 14:37:36 · 1290 阅读 · 0 评论 -
点到平面的距离
空间内一点到平面内一点的最小长度叫做点到平面的距离。特别的,当点在平面内,则点到平面的距离为0。平面的一般式方程Ax +By +Cz + D = 0其中n = (A, B, C)是平面的法向量,D是将平面平移到坐标原点所需距离(所以D=0时,平面过原点)向量的模(长度)给定一个向量V(x, y, z),则|V| = sqrt(x * x + y * y + z * z)向量的点积(内积)给定两个向原创 2017-02-06 14:56:29 · 5205 阅读 · 0 评论 -
点法式方程
平面方程的三种表示法:点法式、一般式、截距式主要使用点法式方程:1. C++标准模板库从入门到精通 http://edu.youkuaiyun.com/course/detail/33242.跟老菜鸟学C++http://edu.youkuaiyun.com/course/detail/29013. 跟老菜鸟学pythonhttp://edu.youkuaiyun.com/course/detail/25924. 在VC2015里学原创 2017-02-06 15:47:41 · 5142 阅读 · 0 评论 -
正交基
规范正交基是n维欧式空间V中n个两两正交的非零单位向量组成的一个规范正交组。V中的任意向量ξ都可以由V的一组规范正交基{a1,a2,…,an}唯一表示ξ=x11+x22+…+xnn,x1,x2,…,xn是ξ关于基{a1,a2,…,an}的坐标,由于{a1,a2,…,an}是规范正交基,在欧式空间中的许多性质都可以转化为坐标来表示。可见规范正交基的引入大大简化了欧式空间中许多性质的探索,所以,规范正原创 2017-02-06 16:03:45 · 6621 阅读 · 0 评论 -
什么是向量空间
向量 AB(AB上面有→)的大小(或长度)叫做向量的模,记作|AB|(AB上有→)或|a|(a上有→)。向量空间又称线性空间,是线性代数的中心内容和基本概念之一。在解析几何里引入向量概念后,使许多问题的处理变得更为简洁和清晰,在此基础上的进一步抽象化,形成了与域相联系的向量空间概念。譬如,实系数多项式的集合在定义适当的运算后构成向量空间,在代数上处理是方便的。单变元实函数的集合在定义适当的运算后,原创 2017-01-15 14:04:25 · 4793 阅读 · 0 评论 -
向量空间是用什么来表示
设Rn为所有n维向量的全体(或n维向量的全体),并在其上定义了向量的加法运算和数乘运算,则称Rn为n维向量空间。其Rn 的每个向量是一个实数的有序排列作成的n元组。| 1 | | 4 | | 5 || 2 | + | 5 | = | 7 || 3 | | 6 | | 9|上面表示了R3原创 2017-01-16 15:02:38 · 3641 阅读 · 0 评论 -
为什么需要仿射空间?
仿射空间与仿射变换在计算机图形学中有着很重要的应用。在线性空间中,我们用矩阵乘向量的方法,可以表示各式各样的线性变换,完成诸多的功能,但是有一种极其常用的变换却不能用线性变换的方式表示,那就是平移,一个图形的平移是非线性的!(这一点只需要看平移前各点与原点的连线和平移后各点与原点之间的连线可知,或者记平移变换为FF,有F(v1+v2)≠F(v1)+F(v2))。为了表示平移,以及现实世界的描述,就原创 2017-01-16 15:51:36 · 7747 阅读 · 2 评论 -
什么是仿射空间里的直线方程和平面方程
在仿射空间中,点与点之间做差可以得到向量,点与向量做加法将得到另一个点.设任意两个有序点P、Q对应于n维矢量空间中的一个矢量a,那么过两点的直线方程为:(1-t)P + tQ笛卡尔平面是一个仿射空间,那么空间两点(a,b), (c, d)之间的参数化方程为:L = {((1-t)a + tc, (1-t)b + td) | t是实数}设P、Q、R为A中任意三点,P、Q对应于矢量a,Q、R对应于矢原创 2017-01-16 17:47:36 · 1946 阅读 · 0 评论 -
线性子空间和仿射子空间
线性子空间(或向量子空间)在线性代数和相关的数学领域中是重要的。在没有混淆于其他子空间的时候通常简称为“子空间”。设 K 是域(比如实数域),并设 V 是在 K 上的向量空间。如同平常,我们称 V 的元素为向量并称 K 的元素为标量。假设 W 是 V 的子集。如果 W 自身是带有同 V 一样的向量空间运算的向量空间,则它是 V 的子空间。仿射子空间是一种更一般的空间。对于向量空间V中的一个非空的子原创 2017-01-16 18:43:16 · 8240 阅读 · 0 评论 -
向量空间的基
向量空间的基定义是:一个向量空间 V 最大的线性独立子集,称为这个空间的基.若 V=0,唯一的基是空集.对非零向量空间 V,基是 V 最小的生成集.如果一个向量空间 V 拥有一个元素个数有限的生成集,那么就称 V 是一个有限维空间.向量空间的所有基拥有相同基数,称为该空间的维度.例如,实数向量空间:R0,R1,R2,R3,…,R∞,…中,Rn 的维度就是 n.设V为向量空间,如果r个向量a1,a2原创 2017-01-16 20:12:16 · 12741 阅读 · 0 评论 -
为什么计算机图形学里要使用点积?
向量的点积,也叫向量的内积、数量积,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量。设有两个向量:则它们的点积为:可以表示为: X . Y 1) 坐标点到原点的距离公式为:sqrt( X1^2 + X2^2 + .... + Xn^2)所以可以采用向量点积表示: sqrt( V. V),也就是等于向量与自己本身的点积再开根号。因此在图形学里,计算坐标原创 2017-01-16 22:05:31 · 2533 阅读 · 0 评论 -
矩阵的特征值和特征向量
特征值是线性代数中的一个重要概念。在数学、物理学、化学、计算机等领域有着广泛的应用。设 A 是n阶方阵,如果存在数m和非零n维列向量 x,使得 Ax=mx 成立,则称 m 是A的一个特征值(characteristic value)或本征值(eigenvalue)。非零n维列向量x称为矩阵A的属于(对应于)特征值m的特征向量或本征向量,简称A的特征向量或A的本征向量。1. 求矩阵特征值的方法Ax=原创 2017-02-14 11:07:37 · 11105 阅读 · 1 评论