前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >理解齐次坐标的意义

理解齐次坐标的意义

原创
作者头像
marsggbo
修改2019-11-29 18:05:21
1K0
修改2019-11-29 18:05:21
举报

图形学中中对于矩阵常涉及的操作有以下几种:

  • 缩放
  • 旋转
  • 平移

在介绍为什么要引入齐次坐标之前先介绍这三个操作的线性代数的表达形式。为了说明方便以二维进行举例说明。

缩放

假设有一个向量为$x1,y1$,那么如果要使得沿着x轴和y轴方向分别伸缩$k_x,k_y$倍,写成矩阵的形式如下:

$$

\begin{equation}

{

\left[ \begin{array}{ccc}

x2\

y2\

\end{array}

\right ]}={

\left[ \begin{array}{ccc}

k_x & 0\

0 & k_y\

\end{array}

\right ]}{

\left[ \begin{array}{ccc}

x1\

y1\

\end{array}

\right ]}

\end{equation}

$$

旋转

QQ图片20191129120302.png
QQ图片20191129120302.png

$$

\begin{equation}

{

\left[ \begin{array}{ccc}

x2\

y2\

\end{array}

\right ]}={

\left[ \begin{array}{ccc}

cos\theta & -sin\theta\

sin\theta & cos\theta\

\end{array}

\right ]}{

\left[ \begin{array}{ccc}

x1\

y1\

\end{array}

\right ]}

\end{equation}

$$

平移

平移很好理解,即

$$

\begin{equation}

{

\left[ \begin{array}{ccc}

x2\

y2\

\end{array}

\right ]}={

\left[ \begin{array}{ccc}

x1\

y1\

\end{array}

\right ]}+{

\left[ \begin{array}{ccc}

tx\

ty\

\end{array}

\right ]}

\end{equation}

$$

但是我们可以看到只有平移的运算是加法,而旋转和缩放都是矩阵乘法,如果平移也能用乘法表示的话,我们就可以通过矩阵连乘的方式很方便的对矩阵做旋转、平移和缩放操作了,所以也就引入了齐次坐标的概念。

齐次坐标

引入齐次坐标其实就是升维,将图像从平面2D坐标变成3D坐标。我们看看平移变换在三维中的矩阵形式:

$$

\begin{equation}

{

\left[ \begin{array}{ccc}

x2\

y2\

1\

\end{array}

\right ]}={

\left[ \begin{array}{ccc}

1 & 0 & tx\

0 & 1 & ty\

0 & 0 & 1\

\end{array}

\right ]}{

\left[ \begin{array}{ccc}

x1\

y1\

1\

\end{array}

\right ]}

\end{equation}

$$

可以看到公式4和公式3的结果是一样的,所以我们成功地将平移的加法运算变成了乘法运算,那旋转和缩放放到三维后的矩阵乘法还成立吗?

缩放:

$$

\begin{equation}

{

\left[ \begin{array}{ccc}

x2\

y2\

1\

\end{array}

\right ]}={

\left[ \begin{array}{ccc}

k_x & 0 & 0\

0 & k_y & 0\

0 & 0 & 1\

\end{array}

\right ]}{

\left[ \begin{array}{ccc}

x1\

y1\

1\

\end{array}

\right ]}

\end{equation}

$$

旋转:

$$

\begin{equation}

{

\left[ \begin{array}{ccc}

x2\

y2\

1\

\end{array}

\right ]}={

\left[ \begin{array}{ccc}

cos\theta & -sin\theta & 0\

sin\theta & cos\theta & 0\

0 & 0 & 1\

\end{array}

\right ]}{

\left[ \begin{array}{ccc}

x1\

y1\

1\

\end{array}

\right ]}

\end{equation}

$$

上面两个式子的结果和二维矩阵乘法结果保持一致,所以通过引入齐次坐标我们将三个基本操作统一起来了,以后所有的变换,不管怎样变换,变换多少次,都可以表示成一连串的矩阵相乘了,这是多么的方便。这就是引入齐次坐标的作用,把各种变换都统一了起来。

参考: 为什么要引入齐次坐标

<footer style="color:white;;background-color:rgb(24,24,24);padding:10px;border-radius:10px;"><br>

<h3 style="text-align:center;color:tomato;font-size:16px;" id="autoid-2-0-0"><br>

<b>MARSGGBO</b><b style="color:white;"><span style="font-size:25px;">♥</span>原创</b>

<span>如有意合作或学术讨论欢迎私戳联系~ 微信:marsggbo 邮箱:marsggbo@foxmail.com</span>

<b style="color:white;">

2019-11-29 11:49:41 <p></p>

</b><p><b style="color:white;"></b>

</p></h3><br>

</footer>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 缩放
  • 旋转
  • 平移
  • 齐次坐标
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档