计算机图形学应用:java2d和3d_计算机如何显示图像的?(10)

观众老爷好,今天是小编关于图形图像的最后一篇文章希望观众老爷能够对图形学有个初步的了解,同时可以熟练的应用小编所介绍的一些基础知识进行图形图像的处理,以及对图像的变换操作在进入正题前请观众老爷拿出你喜欢的零食和爱喝的饮料,放松身心随小编一起走进数码世界!

367fefacb1b8996e7a775817064ef422.png

观众老爷前几期的三角函数、向量和矩阵都有了一定的了解,那图形学中三角函数能够做什么呢?三角函数和向量结合能做什么呢?向量和矩阵以及三角函数结合又能做什么呢?观众老爷有没有一些猜测呢?观众老爷接下来的内容一定要记住哦,这章也是图形学最重要的知识,希望能让观众老爷对图形学有个了解!后期看其它图形学算法不会陷入困境!

b41b873e80d4c920d13dd27188d64988.png

观众老爷看上图,P向量以O为圆心逆时针旋转θ度得到向量P1,Q向量以O为圆心逆时针旋转θ度得到向量Q1P1向量x与y和Q1向量a与b的值会是多少呢?P1向量的x,y以及Q1向量的a,b的值是怎样计算得到的呢?观众老爷有没思路呢?(观众老爷应该还记得如何求向量的大小的公式吧,见下图)已知一个直角三角形的斜边长为1和角度值θ,求其它两条边的边长。

d32aef87cb6dbaadcdc269624f64304c.png

根据余弦函数得到向量P1的x值为cosθ,根据正弦函数得到向量P1的y值为sinθ,根据坐标系和正弦函数知道向量Q1的a值为-sinθ,根据余弦函数得到向量Q1的b值为cosθ。观众老爷QP两向量像不像一张图片按坐标原点逆时针旋转θ度,这时候我们就可以构建2D图像的旋转矩阵:

e599a8ab1d6da67d5327efcb9cf4ec89.png

这时观众老爷是不是很迷惑,旋转矩阵怎么会这样出来的,那如果不是跟坐标系平行的情况是什么样的呢?下面举个例子:

243b20291cb086406d880e0059d2b88f.png

如图,K(x,y)与X坐标轴夹角是α,这时x = |K| cosα,y = |K|sinα,向量K以坐标原点O逆时针旋转β度得到的向量M(a,b),经过旋转后有:

a = |K|cos(α+β) = |K|(cosαcosβ - sinαsinβ) = xcosβ - ysinβ

b = |K|sin(α+β) = |k|(sinαcosβ + cosαsinβ) = xsinβ +ycosβ

这时我们用矩阵来表示,上标T的向量M是把由一行两列的矩阵转置成两行一列矩阵(转置的意义就是把本来不能进行运算的同行或者同列矩阵的一个转置后就能进行矩阵乘法运算,相当于把矩阵数据九十度调换,希望观众老爷不要疑惑,在计算机里不必要纠结这些,算法还不是我们自己说的算,解决问题是根本,数学上有些东西必须这样那样的,在计算机里可以不用太过顾忌,数组的运算比数学上的向量和矩阵运算灵活的多,只要能达到目的并不用考虑能不能得到数学上的论证结果):

a0b5c68ec6d84f5e1d1b157cabe4ec94.png

观众老爷有没想过三维立体旋转是什么样的呢?观众老爷可以根据上面的思路进行推导,(由于三维图形坐标比较难画)这里小编直接列出旋转矩阵,等以后图形编程的内容会用三维软件进行讲解,希望观众老爷能够谅解!三维图形一般是绕轴旋转的,分别是X,Y,Z三个轴进行旋转操作,下面都会标注旋转矩阵的所围绕的轴,三维的旋转和二维是近似的不过要考虑所绕的轴,一般以什么轴,这个轴的值一般不会改变:

b3e6ab3a3ef1fe3a67c54ae09aa670c9.png

接下来进行对图形图像的缩放矩阵讲述,观众老爷还记得前面的实数与矩阵、向量乘法的计算吗?是的缩放就是对对应坐标的值进行放大缩小,下面进行缩放矩阵的列出:

c7666d02c7ac63d21e9a6843cb47df99.png

观众老爷那图形图像的平移是如何进行的呢?在进入位移讲解前介绍一个比较特殊的矩阵——齐次矩阵,什么是齐次矩阵?有什么用呢?齐次矩阵其实就是二维(x y)和三维(x y z)矩阵基础上再加一维(x y w)和(x y z w),它能实现在矩阵线性变换的基础上进行位移处理,就是可以把所有的变换操作合并到一块,旋转,缩放都是是矩阵乘法,而位移是矩阵加法运算,但只要引入齐次矩阵,位移也可以用矩阵乘法实现!

54c8f538ae3d094cbb45a524d709e41b.png
4202ae501314c9bf1d018191783aca6d.png
29051a5edf3142544a312a81e8fce5b0.png

观众老爷图形学的数学基础知识已完结,其实很多算法与矩阵有关,这里小编不进入复杂算法讲解,到了这里《计算机如何显示图像的?》的文章也就结束了!

9fadc68ddc43718e0ad05f5fd4116fbf.png

望观众老爷见谅!最近小编有个项目要忙,所以时间比较紧迫,等有空再写编程相关的文章以及视频制作!观众老爷记得收藏!点赞!转发!关注!您的支持就是我成长的动力!再会!

4a6a2ed0e7497cec50edf1d2cbc9fba9.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值