GOTS
  • GOTS
  • principles
    • 概述
    • 向量的计算
    • 齐次坐标系
    • 维度拓展的9交叉模型
  • geometric
    • 概述
    • 点到直线的距离
    • 线段交点
    • 计算边缘距离
    • 空间关系计算
    • 凸包计算
  • simplify
    • 概述
    • 道格拉斯-普克算法
    • 维斯瓦林甘算法
    • Opt Perkal‘s
  • INDEX
    • 概述
    • 二叉树
    • STR-R树
Powered by GitBook
On this page
  1. principles

齐次坐标系

Previous向量的计算Next维度拓展的9交叉模型

Last updated 5 years ago

Was this helpful?

CtrlK
  • 引入
  • 为什么称为齐次坐标
  • 点的齐次表示
  • 直线的齐次表示
  • 点线空间关系的表示
  • 参考

Was this helpful?

引入

在计算机图形学终有一句名言:

“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”—— F.S. Hill, JR。

简单来说,齐次坐标就是用N+1N+1N+1维来代表NNN维坐标.

Homogeneous coordinates, introduced by August Ferdinand Möbius, make calculations of graphics and geometry possible in projective space.Homogeneous coordinates are a way of representing N-dimensional coordinates with N+1 numbers.

(x,y,w)⇔(xw,yw) Homogeneous  Cartesian \begin{aligned}(x, y, w) & \Leftrightarrow &\left(\frac{x}{w}, \frac{y}{w}\right) \\ \text { Homogeneous } & & \text { Cartesian } \end{aligned}(x,y,w) Homogeneous ​⇔​(wx​,wy​) Cartesian ​

为什么称为齐次坐标

在笛卡尔与齐次转换过程中,我们发现:

 Homogeneous  Cartesian (1,2,3)⇒(13,23)(2,4,6)⇒(26,46)=(13,23)(4,8,12)⇒(412,812)=(13,23)⋮⋮(1a,2a,3a)⇒(1a3a,2a3a)=(13,23)\begin{array}{l}\text { Homogeneous } \quad \text { Cartesian } \\ \qquad \begin{aligned}(1,2,3) & \Rightarrow \quad\left(\frac{1}{3}, \frac{2}{3}\right) \\(2,4,6) & \Rightarrow \quad\left(\frac{2}{6}, \frac{4}{6}\right) \quad=\left(\frac{1}{3}, \frac{2}{3}\right) \\(4,8,12) & \Rightarrow \quad\left(\frac{4}{12}, \frac{8}{12}\right)=\left(\frac{1}{3}, \frac{2}{3}\right) \\ \vdots & \vdots \\(1 a, 2 a, 3 a) & \Rightarrow \quad\left(\frac{1 a}{3 a}, \frac{2 a}{3 a}\right)=\left(\frac{1}{3}, \frac{2}{3}\right) \end{aligned}\end{array} Homogeneous  Cartesian (1,2,3)(2,4,6)(4,8,12)⋮(1a,2a,3a)​⇒(31​,32​)⇒(62​,64​)=(31​,32​)⇒(124​,128​)=(31​,32​)⋮⇒(3a1a​,3a2a​)=(31​,32​)​​

这些点都指向了欧几里得点(13,23)(\frac{1}{3},\frac{2}{3})(31​,32​),无论怎样缩放变化,都代表欧几里得空间中的同一个点。因此这些点是“homogeneous”的,因为它们在欧几里得空间或笛卡尔空间中代表了同一个点。换句话说,齐次坐标是尺度不变的。

词典中,“homogeneous”意思为同种族的,同质的。

点的齐次表示

我们只需要在现有的坐标中新增一个,www,变量就可以构造一个齐次坐标。这样,一个笛卡尔坐标系中的点(X,Y)(X,Y)(X,Y)

在齐次坐标系中就变成了(x,y,w)(x,y,w)(x,y,w),并且齐次坐标还可以再投影到笛卡尔坐标系中:

X=xwY=yw\begin{array}{l}X=\frac {x} {w} \\ Y=\frac {y} {w}\end{array}X=wx​Y=wy​​

直线的齐次表示

一般的直线可以由以下方程表示:

ax+by+c=0a x+b y+c=0ax+by+c=0

平面上直线的齐次表示形式为:

(x,y,w)  ⟹  xX+yY+w=0(x,y,w) \implies xX+yY+w=0(x,y,w)⟹xX+yY+w=0

对于任意非000的kkk:

(x,y,w)k(x,y,w)\begin{array}{l}(x,y,w) \\ k(x,y,w)\end{array}(x,y,w)k(x,y,w)​

表示同一条直线。

点线空间关系的表示

点在直线上有:

x⋅l=l⋅x=0x·l = l·x=0x⋅l=l⋅x=0

两点确定的直线:

x=l1×l2x=l_{1} \times l_{2}x=l1​×l2​

两个直线的交点:

l=x1×x2l=x_{1} \times x_{2}l=x1​×x2​

参考

Homogeneous Coordinates

关于齐次坐标的理解(经典)

平面上点和直线的齐次表示