计算机图形学几何变换

Transformation(变换)

2D线性变换

Scale 缩放变换

[x′y′]=[sx00sy][xy]\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix}\begin{bmatrix} x \\ y \end{bmatrix}[x′y′​]=[sx​0​0sy​​][xy​]

缩放矩阵:scale(Sx,sy)=[sx00sy]scale(S_x,s_y)=\begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix}scale(Sx​,sy​)=[sx​0​0sy​​]

Reflection 镜像变换

x′=−xx'=-xx′=−x

y′=−yy'=-yy′=−y

[x′y′]=[−1001][xy]\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix} -1 & 0 \\ 0 & 1 \end{bmatrix}\begin{bmatrix} x \\ y \end{bmatrix}[x′y′​]=[−10​01​][xy​]

Shear 错切

把物体一边固定,然后拉另外一边

水平切片:

[x′y′]=[1a01][xy]\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix} 1 & a\\ 0 &1\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}[x′y′​]=[10​a1​][xy​]

通过找对应关系来找出变换后的点

Rotate 二维旋转

默认:绕原点逆时针旋转

Rθ=[cosθ−sinθsinθcosθ]R_\theta=\begin{bmatrix}cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix}Rθ​=[cosθsinθ​−sinθcosθ​]

通过特殊点证明,如(0,1)→(−sinθ,cosθ)(0,1)\rarr(-sin\theta,cos\theta)(0,1)→(−sinθ,cosθ)和(1,0)→(cosθ,sinθ)(1,0)\rarr(cos\theta,sin\theta)(1,0)→(cosθ,sinθ)

R−θ=[cosθsinθ−sinθcosθ]=RθT=Rθ−1R_{-\theta}=\begin{bmatrix}cos\theta & sin\theta \\ -sin\theta & cos\theta \end{bmatrix}=R_\theta^T=R_\theta^{-1}R−θ​=[cosθ−sinθ​sinθcosθ​]=RθT​=Rθ−1​

总结

线性变换:可以写成下面这种形式

[x′y′]=[abcd][xy]\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix} a&b \\c&d \end{bmatrix}\begin{bmatrix} x \\ y \end{bmatrix}[x′y′​]=[ac​bd​][xy​]

Translation平移变换

[x′y′]=[abcd][xy]+[txty]\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix} a&b \\c&d \end{bmatrix}\begin{bmatrix} x \\ y \end{bmatrix}+\begin{bmatrix}t_x\\t_y\end{bmatrix}[x′y′​]=[ac​bd​][xy​]+[tx​ty​​],不符合线性变换的表达式

如何把平移变换归结到线性变换?

引入齐次坐标,增加一个维度

  • 2Dpoint=(x,y,1)T2D \quad point =(x,y,1)^T2Dpoint=(x,y,1)T
  • 2Dvector=(x,y,0)T2D \quad vector =(x,y,0)^T2Dvector=(x,y,0)T保证向量平移不变性

为什么要分点和向量呢?

  • vecor + vector = vector
  • point - point = vector
  • point + vector = point
  • point + point = mid point

(xyw)\begin{pmatrix}x\\y\\w\end{pmatrix}⎝⎛​xyw​⎠⎞​ 变成二维的点为 (xwyw1)\begin{pmatrix}\frac{x}{w}\\\frac{y}{w}\\1\end{pmatrix}⎝⎛​wx​wy​1​⎠⎞​,w≠0w\neq0w​=0

由此可以得到以下形式
(x′y′w′)=(10tx01ty001)⋅(xy1)=(x+txy+ty1)\begin{pmatrix}x'\\y'\\w'\end{pmatrix}= \begin{pmatrix} 1&0&t_x\\0&1&t_y\\0&0&1 \end{pmatrix}\cdot \begin{pmatrix} x \\ y\\1 \end{pmatrix}= \begin{pmatrix} x+t_x \\y+t_y\\1 \end{pmatrix} ⎝⎛​x′y′w′​⎠⎞​=⎝⎛​100​010​tx​ty​1​⎠⎞​⋅⎝⎛​xy1​⎠⎞​=⎝⎛​x+tx​y+ty​1​⎠⎞​

Affine Transformations仿射变换

Affine map = linear map + translation

(x′y′)=(abcd)⋅(xy)+(txty)\begin{pmatrix}x'\\y'\end{pmatrix}=\begin{pmatrix}a&b\\c&d\end{pmatrix}\cdot \begin{pmatrix}x\\y\end{pmatrix}+\begin{pmatrix}t_x\\t_y\end{pmatrix}(x′y′​)=(ac​bd​)⋅(xy​)+(tx​ty​​)

Using homogenous coordinates(写成齐次坐标的形式)
(x′y′1)=(abtxcdty001)⋅(xy1)\begin{pmatrix}x'\\y'\\1\end{pmatrix}= \begin{pmatrix} a&b&t_x\\c&d&t_y\\0&0&1 \end{pmatrix}\cdot \begin{pmatrix} x \\ y\\1 \end{pmatrix} ⎝⎛​x′y′1​⎠⎞​=⎝⎛​ac0​bd0​tx​ty​1​⎠⎞​⋅⎝⎛​xy1​⎠⎞​

用齐次坐标表示各种线性变换:

Scale

S(sx,sy)=(sx000sy0001)S(s_x,s_y)=\begin{pmatrix}s_x&0&0\\0 &s_y&0\\0&0&1\end{pmatrix}S(sx​,sy​)=⎝⎛​sx​00​0sy​0​001​⎠⎞​

Rotation

R(α)=(cosα−sinα0sinαcosα0001)R(\alpha)=\begin{pmatrix}cos\alpha&-sin\alpha&0\\sin\alpha&cos\alpha&0 \\ 0&0&1\end{pmatrix}R(α)=⎝⎛​cosαsinα0​−sinαcosα0​001​⎠⎞​

Translation

T(tx,ty)=(10tx01ty001)T(t_x,t_y)=\begin{pmatrix}1&0&t_x\\0&1&t_y\\0&0&1\end{pmatrix}T(tx​,ty​)=⎝⎛​100​010​tx​ty​1​⎠⎞​

Inverse Transform(逆变换)

M′M'M′(可以通过逆矩阵来理解)

变换的合成与分解

合成

可以类比矩阵乘法的结合律

An(...A2(A1(x)))=An⋅⋅⋅A2⋅A1⋅(xy1)A_n(...A_2(A_1(x)))=A_n \cdot \cdot \cdot A_2\cdot A_1 \cdot \begin{pmatrix}x\\y\\1\end{pmatrix}An​(...A2​(A1​(x)))=An​⋅⋅⋅A2​⋅A1​⋅⎝⎛​xy1​⎠⎞​

其中An⋅⋅⋅A2⋅A1A_n \cdot \cdot \cdot A_2\cdot A_1An​⋅⋅⋅A2​⋅A1​可以结合为一个矩阵,从而表示复杂的变换

分解

例如:将图像绕点C旋转α\alphaα度

可以分解为以下几步

  1. 将C点移动到原点,T(C)T(C)T(C)
  2. 绕原点旋转α\alphaα度,R(α)R(\alpha)R(α)
  3. 将C点移回原位置,T(−C)T(-C)T(−C)

故变换矩阵为T(C)⋅R(α)⋅T(−C)T(C) \cdot R(\alpha) \cdot T(-C)T(C)⋅R(α)⋅T(−C)

3D Transforms(三维变换)

类比二维

齐次坐标形式如下:

  • 3D point = (x,y,z,1)T(x,y,z,1)^T(x,y,z,1)T
  • 3D vector = (x,y,z,0)T(x,y,z,0)^T(x,y,z,0)T

(x,y,z,w)(w!=0)(x,y,z,w)\quad (w!=0)(x,y,z,w)(w!=0)表示三维空间的点(xw,yw,zw)(\frac{x}{w},\frac{y}{w},\frac{z}{w})(wx​,wy​,wz​)

使用4×44\times44×4的矩阵表示仿射变换如下:
(x′y′z′1)=(abctxdeftyghitz0001)⋅(xyz1)\begin{pmatrix}x'\\y'\\z'\\1\end{pmatrix}= \begin{pmatrix} a & b & c & t_x\\ d & e & f & t_y\\ g & h & i & t_z\\ 0 & 0 & 0 & 1 \end{pmatrix}\cdot \begin{pmatrix}x\\y\\z\\1\end{pmatrix} ⎝⎜⎜⎛​x′y′z′1​⎠⎟⎟⎞​=⎝⎜⎜⎛​adg0​beh0​cfi0​tx​ty​tz​1​⎠⎟⎟⎞​⋅⎝⎜⎜⎛​xyz1​⎠⎟⎟⎞​
先进行线性变换,再平移

Scale

S(sx,sy,sz)=(sx0000sy0000sz00001)S(s_x,s_y,s_z)= \begin{pmatrix} s_x & 0 & 0 & 0\\ 0 & s_y & 0 & 0\\ 0 & 0 & s_z & 0\\ 0 & 0 & 0 & 1 \end{pmatrix} S(sx​,sy​,sz​)=⎝⎜⎜⎛​sx​000​0sy​00​00sz​0​0001​⎠⎟⎟⎞​

Translation

T(tx,ty,tz)=(100tx010ty001tz0001)T(t_x,t_y,t_z)= \begin{pmatrix} 1 & 0 & 0 & t_x\\ 0 & 1 & 0 & t_y\\ 0 & 0 & 1 & t_z\\ 0 & 0 & 0 & 1 \end{pmatrix} T(tx​,ty​,tz​)=⎝⎜⎜⎛​1000​0100​0010​tx​ty​tz​1​⎠⎟⎟⎞​

Rotation

绕x,y,z轴旋转
Rx(α)=(10000cosα−sinα00sinαcosα00001)R_x(\alpha)= \begin{pmatrix} 1 &0&0&0\\ 0&cos\alpha&-sin\alpha&0\\ 0&sin\alpha&cos\alpha&0\\ 0&0&0&1 \end{pmatrix} Rx​(α)=⎝⎜⎜⎛​1000​0cosαsinα0​0−sinαcosα0​0001​⎠⎟⎟⎞​

Ry(α)=(cosα0sinα00100−sinα0cosα00001)R_y(\alpha)= \begin{pmatrix} cos\alpha&0&sin\alpha&0\\ 0&1&0&0\\ -sin\alpha&0&cos\alpha&0\\ 0&0&0&1 \end{pmatrix} Ry​(α)=⎝⎜⎜⎛​cosα0−sinα0​0100​sinα0cosα0​0001​⎠⎟⎟⎞​

Rz(α)=(cosα−sinα00sinαcosα0000100001)R_z(\alpha)= \begin{pmatrix} cos\alpha&-sin\alpha&0&0\\ sin\alpha&cos\alpha&0&0\\ 0&0&1&0\\ 0&0&0&1 \end{pmatrix} Rz​(α)=⎝⎜⎜⎛​cosαsinα00​−sinαcosα00​0010​0001​⎠⎟⎟⎞​

由于x×y=z,x×z=−y,y×z=xx\times y=z,x\times z =-y,y\times z=xx×y=z,x×z=−y,y×z=x,故当关于y轴旋转时需要将对应的旋转部分的二维矩阵与其他两个不同

绕任意轴(过原点)的3D旋转

Rxyz(α,θ,γ)=Rx(α)Ry(θ)Rz(γ)R_{xyz}(\alpha,\theta,\gamma)=R_x(\alpha)R_y(\theta)R_z(\gamma)Rxyz​(α,θ,γ)=Rx​(α)Ry​(θ)Rz​(γ)

上述角度称为欧拉角,可以通过飞机的roll、pitch、yaw操作进行理解

Rodrigues’ Rotation Formula

绕旋转轴n\boldsymbol{n}n旋转α\alphaα角
R(n,α)=cos(α)I+(1−cos(α))nnT+sin(α)(0−nznynz0−nz−nynx0)⏟NR(\boldsymbol{n},\alpha)=cos(\alpha)\boldsymbol{I}+(1-cos(\alpha)) \boldsymbol{nn}^T+sin(\alpha) \underbrace{ \begin{pmatrix} 0&-n_z&n_y\\ n_z&0&-n_z\\ -n_y&n_x&0 \end{pmatrix} }_N R(n,α)=cos(α)I+(1−cos(α))nnT+sin(α)N⎝⎛​0nz​−ny​​−nz​0nx​​ny​−nz​0​⎠⎞​​​
若轴不过原点,可以先将轴的中心点平移至原点,再旋转,最后再将轴平移回去

Viewing transformation(观测变换)

  • model transformation模型变换
  • view transformation视图变换
  • projection transformation投影变换

类比拍照

  • 找好的地方 → model
  • 找好的角度 → view
  • 拍摄 → projection

View/Camera Transformation

定义相机

  • Position(位置) e⃗\vec{e}e
  • gaze direction(角度) g⃗\vec{g}g​
  • Up direction(向上方向) t⃗\vec{t}t

数学表示

Mview=RviewTviewM_{view}=R_{view}T_{view}Mview​=Rview​Tview​

其中
Tview=[100−xe010−ye001−ze0001]T_{view}=\begin{bmatrix} 1&0&0&-x_e\\ 0&1&0&-y_e\\ 0&0&1&-z_e\\ 0&0&0&1 \end{bmatrix} Tview​=⎣⎢⎢⎡​1000​0100​0010​−xe​−ye​−ze​1​⎦⎥⎥⎤​
对于RviewR_{view}Rview​,则是将 g⃗\vec{g}g​ 旋转到 −Z-Z−Z 轴,t⃗\vec{t}t 旋转到 YYY 轴,(g⃗×t⃗)(\vec{g}\times \vec{t})(g​×t) 旋转到 XXX 轴

直接写出RviewR_{view}Rview​ 可能比较麻烦,我们可以从逆变换的角度先写Rview−1R_{view}^{-1}Rview−1​ ,再根据旋转矩阵为正交矩阵,正交矩阵的逆矩阵为它的转置写出RviewR_{view}Rview​
Rview−1=[xg⃗×t⃗xtx−g0yg⃗×t⃗yty−g0zg⃗×t⃗ztz−g00001]⇒Rview=[xg⃗×t⃗yg⃗×t⃗zg⃗×t⃗0xtytzt0x−gy−gz−g00001]R_{view}^{-1}=\begin{bmatrix} x_{\vec{g}\times \vec{t}} & x_t & x_{-g} & 0\\ y_{\vec{g}\times \vec{t}} & y_t & y_{-g} & 0\\ z_{\vec{g}\times \vec{t}} & z_t & z_{-g} & 0\\ 0&0&0&1 \end{bmatrix} \quad \Rarr \quad R_{view}=\begin{bmatrix} x_{\vec{g}\times \vec{t}} & y_{\vec{g}\times \vec{t}} & z_{\vec{g}\times \vec{t}} & 0\\ x_t& y_t & z_t & 0\\ x_{-g}& y_{-g} & z_{-g} & 0\\ 0&0&0&1 \end{bmatrix} Rview−1​=⎣⎢⎢⎡​xg​×t​yg​×t​zg​×t​0​xt​yt​zt​0​x−g​y−g​z−g​0​0001​⎦⎥⎥⎤​⇒Rview​=⎣⎢⎢⎡​xg​×t​xt​x−g​0​yg​×t​yt​y−g​0​zg​×t​zt​z−g​0​0001​⎦⎥⎥⎤​

Projection Transformation(投影变换)

正交投影和透视投影对比如下:

Orthographic projection(正交投影)

无近大远小的现象

简单理解:

  • 将相机放到原点,看向−Z-Z−Z方向,向上方向为YYY轴正方向
  • 去掉ZZZ坐标
  • 伸缩变换到[−1,1]2[-1,1]^2[−1,1]2

正式操作:

  • 将一个空间的立方体[l,r]×[b,t]×[f,n][l,r]\times[b,t]\times[f,n][l,r]×[b,t]×[f,n]映射到标准立方体(canonical cube)[−1,1]3[-1,1]^3[−1,1]3
  • 将中心点平移到原点,缩放到标准立方体

矩阵形式:
Mortho=[2r−l00002t−b00002n−f00001][100−r+l2010−t+b2001−n+f20001]M_{ortho}=\begin{bmatrix} \frac{2}{r-l} & 0 & 0 & 0\\ 0 & \frac{2}{t-b} & 0 & 0\\ 0 & 0 & \frac{2}{n-f} & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 & -\frac{r+l}{2}\\ 0 & 1 & 0 & -\frac{t+b}{2}\\ 0 & 0 & 1 & -\frac{n+f}{2} \\ 0 & 0 & 0 & 1 \end{bmatrix} Mortho​=⎣⎢⎢⎡​r−l2​000​0t−b2​00​00n−f2​0​0001​⎦⎥⎥⎤​⎣⎢⎢⎡​1000​0100​0010​−2r+l​−2t+b​−2n+f​1​⎦⎥⎥⎤​

Perspective projection(透视投影)

有近大远小的现象

如何完成透视投影?

  • 可以先将锥体“压扁”为立方体(n→n,f→fn\rarr n,f\rarr fn→n,f→f)(Mpersp→orthoM_{persp\rarr ortho}Mpersp→ortho​)
  • 做一次正交投影(MorthoM_{ortho}Mortho​)

规定:近平面上点的坐标不变,远平面的z坐标不变,远平面的中心点坐标不变

那么如何“压扁”呢?

我们需要找到变换后的点(x′,y′,z′)(x',y',z')(x′,y′,z′)和它的原始点(x,y,z)(x,y,z)(x,y,z)之间的关系,我们从y−zy-zy−z平面看,发现y′=nzyy'=\frac{n}{z}yy′=zn​y,具体如下

同理:x′=nzxx'=\frac{n}{z}xx′=zn​x

现在我们可以得到如下变换
Mpersp→ortho(4×4)(xyz1)⇒(nxznyzunknown1)=×z(nxnystillunknownz)M^{(4\times 4)}_{persp\rarr ortho} \begin{pmatrix} x\\y\\z\\1 \end{pmatrix} \Rightarrow \begin{pmatrix} \frac{nx}{z}\\\frac{ny}{z}\\unknown\\1 \end{pmatrix} \xlongequal[]{\times z} \begin{pmatrix} nx\\ny\\still\quad unknown\\z \end{pmatrix} Mpersp→ortho(4×4)​⎝⎜⎜⎛​xyz1​⎠⎟⎟⎞​⇒⎝⎜⎜⎛​znx​zny​unknown1​⎠⎟⎟⎞​×z​⎝⎜⎜⎛​nxnystillunknownz​⎠⎟⎟⎞​
故我们可以得到Mpersp→ortho(4×4)M^{(4\times 4)}_{persp\rarr ortho}Mpersp→ortho(4×4)​的一部分
Mpersp→orhto(4×4)=(n0000n00????0010)M^{(4\times 4)}_{persp\rarr orhto}= \begin{pmatrix} n&0&0&0\\ 0&n&0&0\\ ?&?&?&?\\ 0&0&1&0 \end{pmatrix} Mpersp→orhto(4×4)​=⎝⎜⎜⎛​n0?0​0n?0​00?1​00?0​⎠⎟⎟⎞​
我们可以观察到近平面上的点不变,即
Mpersp→orhto(4×4)(xyz1)=(nxnyunknownz),用z代替n可得(xyn1)⇒(xyn1)==(nxnyn2n)M^{(4\times 4)}_{persp\rarr orhto} \begin{pmatrix} x\\y\\z\\1 \end{pmatrix} =\begin{pmatrix} nx\\ny\\unknown\\z \end{pmatrix} ,用z代替n可得 \begin{pmatrix} x\\y\\n\\1 \end{pmatrix} \Rightarrow \begin{pmatrix} x\\y\\n\\1 \end{pmatrix} ==\begin{pmatrix} nx\\ny\\n^2\\n \end{pmatrix} Mpersp→orhto(4×4)​⎝⎜⎜⎛​xyz1​⎠⎟⎟⎞​=⎝⎜⎜⎛​nxnyunknownz​⎠⎟⎟⎞​,用z代替n可得⎝⎜⎜⎛​xyn1​⎠⎟⎟⎞​⇒⎝⎜⎜⎛​xyn1​⎠⎟⎟⎞​==⎝⎜⎜⎛​nxnyn2n​⎠⎟⎟⎞​
因此Mpersp→ortho(4×4)M^{(4\times 4)}_{persp\rarr ortho}Mpersp→ortho(4×4)​的第三行应该为(00AB)(0\quad 0\quad A\quad B)(00AB)这种形式
(00AB)(xyn1)=n2(0\quad 0\quad A\quad B) \begin{pmatrix} x\\y\\n\\1 \end{pmatrix}=n^2 (00AB)⎝⎜⎜⎛​xyn1​⎠⎟⎟⎞​=n2
可以得到An+B=n2An+B=n^2An+B=n2

同样的道理远平面的中心点(00f1)(0\quad 0\quad f\quad 1)(00f1)经过"压扁"后还是(00f1)(0\quad 0\quad f\quad 1)(00f1),也就是(00f2f)(0\quad 0\quad f^2\quad f)(00f2f)(利用特殊值法求解)


(00f1)⇒(00f1)==(00f2f)\begin{pmatrix} 0\\0\\f\\1 \end{pmatrix} \Rightarrow \begin{pmatrix} 0\\0\\f\\1 \end{pmatrix}== \begin{pmatrix} 0\\0\\f^2\\f \end{pmatrix} ⎝⎜⎜⎛​00f1​⎠⎟⎟⎞​⇒⎝⎜⎜⎛​00f1​⎠⎟⎟⎞​==⎝⎜⎜⎛​00f2f​⎠⎟⎟⎞​
可以得到Af+B=f2Af+B=f^2Af+B=f2

联立{An+B=n2Af+B=f2\left\{ \begin{aligned} An+B=n^2 \\Af+B=f^2 \end{aligned} \right.{An+B=n2Af+B=f2​,可以得到{A=n+fB=−nf\left\{ \begin{aligned} A=n+f \\B=-nf \end{aligned} \right.{A=n+fB=−nf​

综合上述:

Mpersp→orhto(4×4)=(n0000n0000n+f−nf0010)Mpersp=MorthoMpersp→orhto(4×4)M^{(4\times 4)}_{persp\rarr orhto}=\begin{pmatrix}n&0&0&0\\0&n&0&0\\0&0&n+f&-nf\\0&0&1&0\end{pmatrix}\\ M_{persp}=M_{ortho}M^{(4\times 4)}_{persp\rarr orhto} Mpersp→orhto(4×4)​=⎝⎜⎜⎛​n000​0n00​00n+f1​00−nf0​⎠⎟⎟⎞​Mpersp​=Mortho​Mpersp→orhto(4×4)​

计算机图形学几何变换相关推荐

  1. c语言二维图形变换程序,【计算机图形学】3-2 二维几何变换根本代码

    [计算机图形学]3-2 二维几何变换基本代码 返回目录 基本理论参见:[计算机图形学]3-1 二维几何变换基本理论 注:这里不考虑插值的问题. 全部的代码都在https://github.com/Cy ...

  2. 计算机图形学 学习笔记(八):三维图形变换:三维几何变换,投影变换(平行/ 透视 投影)

    接上文 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等 通过三维图形变换,可由简单图形得到复杂图形,三维图形变化则分为三维几何变换和投影变换. 6.1 三维图形几何变换 三维 ...

  3. 二维图形几何变换(计算机图形学)

    说明:本实验代码在vs2022下可正常运行,本实验适配于计算机图形学新版(VC++ MFC )第二版 1.实验目的 1)掌握3*3矩阵乘法运算的编程实现 2)掌握平移,比例,旋转三种基本二维几何变换矩 ...

  4. 计算机图形学13:三维图形的几何变换

    作者:非妃是公主 专栏:<计算机图形学> 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成.--曾国藩 文章目录 专栏推 ...

  5. 计算机图形学中几何变换的定义,计算机图形学-第5章-几何变换课件

    <计算机图形学-第5章-几何变换课件>由会员分享,可在线阅读,更多相关<计算机图形学-第5章-几何变换课件(70页珍藏版)>请在人人文库网上搜索. 1.计算机图形学-第5章-几 ...

  6. 计算机图形基础实验图形变换,北方工业大学 计算机图形学实验 几何变换

    北方工业大学 计算机图形学实验 几何变换 四.用OpenGL函数库实现几何图元旋转特效 在Nehe教程Lesson04基础上,修改程序,在屏幕上画两个三角形.两个四边形,并完成相应动画效果,三角形A绕 ...

  7. 第一个使用计算机图形学术语,计算机图形学考题

    下面哪个函数是OpenGl的工具函数( ) A.glBegin B.glEnd C. glClear D. gluLookAt Breseham算法直线算法中,当误差项d 0.5时,直线与列垂直网格的 ...

  8. 华北电力大学计算机图形学实验报告,华北电力大学计算机图形学实验报告分析.doc...

    华北电力大学计算机图形学实验报告分析 科 技 学 院 课程设计(综合实验)报告 ( 2013 -- 2014 年度第 2 学期) 实验名称 OpenGL基本图元绘制实验 课程名称 计算机图形学 | | ...

  9. 计算机图形学三大应用领域,计算机图形学作业

    计算机图形学作业题 1. 计算机中由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)加属性参数(颜色.线型等)来表示图形称图形的参数表示:枚举出图形中所有的点称图形的点阵表示,简称为图像(数 ...

最新文章

  1. UVA10212 【The Last Non-zero Digit.】
  2. 非常美妙的图片,呵呵
  3. 数据结构的简单理解(1)
  4. JavaScript 里三个点 ... 的用法
  5. bzoj 3196/tyvj p1730 二逼平衡树
  6. Introduction to Real-Time Kernels
  7. web.py+xheditor+ ajaxfileupload+新浪sae图片上传
  8. quartz.net隔一天执行一次_一天拉几次大便算正常?啥时候拉最好?关于便便的事,可算明白了...
  9. 证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
  10. Select2使用经验及多Jquery版本处理
  11. uniapp使用阿里百川SDK唤醒淘宝APP 打开淘宝领券页面/渠道备案,uniapp对接淘宝联盟等等超级详细
  12. LeetCode-Python-1386. 安排电影院座位(数组)
  13. 图的应用--最短路算法
  14. ec20 以太网_轩辕实验室:SOTIF:汽车以太网的容错能力测试(2)
  15. SWA(随机权重平均)
  16. 现在学 Prolog 递归
  17. 直角三角形 纪中 1385 数学_斜率
  18. Go语言圣经 - 第11章 测试 - 11.1 go test 11.2 测试函数
  19. 微信发送视频不被压缩的方法
  20. pycharm终端pip显示成功却无法找到相应库

热门文章

  1. Union/find--不相交集类(并查集)
  2. 那些年做过的 .NET Web 项目和 iOS 之路的一些思考
  3. java 方法的返回值(翻译自Java Tutorials)
  4. 很高兴,自己申请到了一个.net的blog
  5. python将网页保存为图片_使用Python保存网页上的图片或者保存页面为截图
  6. 华为p20有没有计算机,用华为P20不知道这三个功能就亏大了!第一个很少人知道!...
  7. Eclipse-无法执行现有代码,依旧执行以前的代码
  8. tcp测试监听工具_linux 下两款网络性能测试工具介绍
  9. killall命令_没想到Linux命令也有“吓人”的一面……
  10. if else if else语句格式_计算机各语言之间if...else区别