计算机图形学几何变换
计算机图形学几何变换
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′]=[sx00sy][xy]
缩放矩阵:scale(Sx,sy)=[sx00sy]scale(S_x,s_y)=\begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix}scale(Sx,sy)=[sx00sy]
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′]=[−1001][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′]=[10a1][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′]=[acbd][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′]=[acbd][xy]+[txty],不符合线性变换的表达式
如何把平移变换归结到线性变换?
引入齐次坐标,增加一个维度
- 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}⎝⎛wxwy1⎠⎞,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′⎠⎞=⎝⎛100010txty1⎠⎞⋅⎝⎛xy1⎠⎞=⎝⎛x+txy+ty1⎠⎞
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′)=(acbd)⋅(xy)+(txty)
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⎠⎞=⎝⎛ac0bd0txty1⎠⎞⋅⎝⎛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)=⎝⎛sx000sy0001⎠⎞
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α0001⎠⎞
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)=⎝⎛100010txty1⎠⎞
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α度
可以分解为以下几步
- 将C点移动到原点,T(C)T(C)T(C)
- 绕原点旋转α\alphaα度,R(α)R(\alpha)R(α)
- 将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⎠⎟⎟⎞=⎝⎜⎜⎛adg0beh0cfi0txtytz1⎠⎟⎟⎞⋅⎝⎜⎜⎛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)=⎝⎜⎜⎛sx0000sy0000sz00001⎠⎟⎟⎞
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)=⎝⎜⎜⎛100001000010txtytz1⎠⎟⎟⎞
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(α)=⎝⎜⎜⎛10000cosαsinα00−sinαcosα00001⎠⎟⎟⎞
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α00100sinα0cosα00001⎠⎟⎟⎞
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α0000100001⎠⎟⎟⎞
由于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−nz0nxny−nz0⎠⎞
若轴不过原点,可以先将轴的中心点平移至原点,再旋转,最后再将轴平移回去
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=RviewTview
其中
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=⎣⎢⎢⎡100001000010−xe−ye−ze1⎦⎥⎥⎤
对于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×tyg×tzg×t0xtytzt0x−gy−gz−g00001⎦⎥⎥⎤⇒Rview=⎣⎢⎢⎡xg×txtx−g0yg×tyty−g0zg×tztz−g00001⎦⎥⎥⎤
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−l20000t−b20000n−f200001⎦⎥⎥⎤⎣⎢⎢⎡100001000010−2r+l−2t+b−2n+f1⎦⎥⎥⎤
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′=zny,具体如下
同理:x′=nzxx'=\frac{n}{z}xx′=znx
现在我们可以得到如下变换
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⎠⎟⎟⎞⇒⎝⎜⎜⎛znxznyunknown1⎠⎟⎟⎞×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?00n?000?100?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)=⎝⎜⎜⎛n0000n0000n+f100−nf0⎠⎟⎟⎞Mpersp=MorthoMpersp→orhto(4×4)
计算机图形学几何变换相关推荐
- c语言二维图形变换程序,【计算机图形学】3-2 二维几何变换根本代码
[计算机图形学]3-2 二维几何变换基本代码 返回目录 基本理论参见:[计算机图形学]3-1 二维几何变换基本理论 注:这里不考虑插值的问题. 全部的代码都在https://github.com/Cy ...
- 计算机图形学 学习笔记(八):三维图形变换:三维几何变换,投影变换(平行/ 透视 投影)
接上文 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等 通过三维图形变换,可由简单图形得到复杂图形,三维图形变化则分为三维几何变换和投影变换. 6.1 三维图形几何变换 三维 ...
- 二维图形几何变换(计算机图形学)
说明:本实验代码在vs2022下可正常运行,本实验适配于计算机图形学新版(VC++ MFC )第二版 1.实验目的 1)掌握3*3矩阵乘法运算的编程实现 2)掌握平移,比例,旋转三种基本二维几何变换矩 ...
- 计算机图形学13:三维图形的几何变换
作者:非妃是公主 专栏:<计算机图形学> 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成.--曾国藩 文章目录 专栏推 ...
- 计算机图形学中几何变换的定义,计算机图形学-第5章-几何变换课件
<计算机图形学-第5章-几何变换课件>由会员分享,可在线阅读,更多相关<计算机图形学-第5章-几何变换课件(70页珍藏版)>请在人人文库网上搜索. 1.计算机图形学-第5章-几 ...
- 计算机图形基础实验图形变换,北方工业大学 计算机图形学实验 几何变换
北方工业大学 计算机图形学实验 几何变换 四.用OpenGL函数库实现几何图元旋转特效 在Nehe教程Lesson04基础上,修改程序,在屏幕上画两个三角形.两个四边形,并完成相应动画效果,三角形A绕 ...
- 第一个使用计算机图形学术语,计算机图形学考题
下面哪个函数是OpenGl的工具函数( ) A.glBegin B.glEnd C. glClear D. gluLookAt Breseham算法直线算法中,当误差项d 0.5时,直线与列垂直网格的 ...
- 华北电力大学计算机图形学实验报告,华北电力大学计算机图形学实验报告分析.doc...
华北电力大学计算机图形学实验报告分析 科 技 学 院 课程设计(综合实验)报告 ( 2013 -- 2014 年度第 2 学期) 实验名称 OpenGL基本图元绘制实验 课程名称 计算机图形学 | | ...
- 计算机图形学三大应用领域,计算机图形学作业
计算机图形学作业题 1. 计算机中由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)加属性参数(颜色.线型等)来表示图形称图形的参数表示:枚举出图形中所有的点称图形的点阵表示,简称为图像(数 ...
最新文章
- UVA10212 【The Last Non-zero Digit.】
- 非常美妙的图片,呵呵
- 数据结构的简单理解(1)
- JavaScript 里三个点 ... 的用法
- bzoj 3196/tyvj p1730 二逼平衡树
- Introduction to Real-Time Kernels
- web.py+xheditor+ ajaxfileupload+新浪sae图片上传
- quartz.net隔一天执行一次_一天拉几次大便算正常?啥时候拉最好?关于便便的事,可算明白了...
- 证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
- Select2使用经验及多Jquery版本处理
- uniapp使用阿里百川SDK唤醒淘宝APP 打开淘宝领券页面/渠道备案,uniapp对接淘宝联盟等等超级详细
- LeetCode-Python-1386. 安排电影院座位(数组)
- 图的应用--最短路算法
- ec20 以太网_轩辕实验室:SOTIF:汽车以太网的容错能力测试(2)
- SWA(随机权重平均)
- 现在学 Prolog 递归
- 直角三角形 纪中 1385 数学_斜率
- Go语言圣经 - 第11章 测试 - 11.1 go test 11.2 测试函数
- 微信发送视频不被压缩的方法
- pycharm终端pip显示成功却无法找到相应库
热门文章
- Union/find--不相交集类(并查集)
- 那些年做过的 .NET Web 项目和 iOS 之路的一些思考
- java 方法的返回值(翻译自Java Tutorials)
- 很高兴,自己申请到了一个.net的blog
- python将网页保存为图片_使用Python保存网页上的图片或者保存页面为截图
- 华为p20有没有计算机,用华为P20不知道这三个功能就亏大了!第一个很少人知道!...
- Eclipse-无法执行现有代码,依旧执行以前的代码
- tcp测试监听工具_linux 下两款网络性能测试工具介绍
- killall命令_没想到Linux命令也有“吓人”的一面……
- if else if else语句格式_计算机各语言之间if...else区别