首页 > 其他分享 >二刷GAMES11 Transformation

二刷GAMES11 Transformation

时间:2024-03-05 19:58:33浏览次数:21  
标签:平移 2D 矩阵 GAMES11 二刷 pmatrix alpha Transformation

齐次坐标

引入齐次坐标是想把包含平移在内的变换写成一个矩阵乘以一个向量的形式。

Homogenous Coordinates
2D point \((x,y,1)^T\) 其实是\((x/w,y/w,w)^T\) w不等于0
2D vector \((x,y,0)^T\)

2D Transformations

  • 缩放,Scale

\[\mathbf{S}(s_x,s_y)=\begin{pmatrix}s_x&0&0\\0&s_y&0\\0&0&1\end{pmatrix} \]

  • 旋转,Rotation

\[\mathbf{R}(\alpha)=\begin{pmatrix}\cos\alpha&-\sin\alpha&0\\\sin\alpha&\cos\alpha&0\\0&0&1\end{pmatrix} \]

  • 平移,Translation

\[\mathbf{T}(t_x,t_y)=\begin{pmatrix}1&0&t_x\\0&1&t_y\\0&0&1\end{pmatrix} \]

  • 斜切,Shear

组合变换

变换顺序很重要,矩阵点乘不符合交换律

仿射变换(Affine transformation),又称仿射映射,是指在几何中,对一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。
线性变换不改变原点。
齐次坐标通过高纬度的线性变换完成低纬度的仿射变换。
旋转矩阵是正交矩阵,旋转矩阵的逆是旋转矩阵的转置。

3D Transformations

  • 缩放,Scale
  • 旋转,Rotation
  • 平移,Translation

相机成像投影

View/Camera Transformation

定义相机

  • Position
  • Look-at / gaze direction
  • Up direction

一般相机的标准定位

  • The origin, up at Y, look at -Z
  • And transform the objects along with the camera

Projection Transformation

将3D转为2D

  • 正交投影


    规范化的过程,平移到原点,缩放到[1,1,1]标准正方体中

  • 透视投影
    近大远小


    思路是先将f平面挤压成和n平面一样大小的,然后进行正交投影
    挤压的矩阵定义为\(M_{persp->ortho}\),同时n平面上的点坐标不变,f平面点z坐标不变。
    推导过程见图。
    课上问题:中间的点挤压后z会变大还是变小
    答:z变大了。推导过程如下:

标签:平移,2D,矩阵,GAMES11,二刷,pmatrix,alpha,Transformation
From: https://www.cnblogs.com/code-fun/p/18054289

相关文章

  • CF1383A String Transformation 1 题解
    若某一位\(i\)上\(A_i>B_i\),则显然无解。否则,建立并查集,然后遍历字符串,若\(A_i,B_i\)不在一个集合就合并\(A_i\)与\(B_i\),直到只剩下一个集合,此时的合并总次数即为答案。为什么呢?因为将\(A_i,B_i\)合并的操作可以视为等价于将以\(A_i\)开头的连续若干个相同字符均改......
  • 2024CVPR_Misalignment-Robust Frequency Distribution Loss for Image Transformatio
    一、Motivation1、目前的方法严重依赖于具有像素级对齐的精确对齐配对数据集(感觉像是说L1,不确定==)二、Contribution使用离散傅里叶变换(DFT)将图像特征转换到频域,在计算预测图像和参考值GT振幅和相位的SWD(Sliced Wasserstein Distance)距离三、Network Loss设计感觉比......
  • 二刷 K8s 源码 - workqueue 的所有细节
    1.概述-何来此文2.Queue的实现2.1Queue.Add(iteminterface{})方法2.2Queue.Get()方法2.3Queue.Done(iteminterface{})方法3.DelayingQueue的实现4.RateLimitingQueue的实现5.rateLimiter限速器的实现6.控制器里用的默认限速器7.总结1.概述-......
  • 常用的rddTransformation算子
    根据文章:暑假生活每周总结10  frompysparkimportSparkContext#创建SparkContext对象sc=SparkContext("local","RDDTransformationsExample")#假设我们有一个RDD数据源data=sc.parallelize([1,2,3,4,5])#1.map算子mapped_data=data.map(lambda......
  • MatrixVT:高效View Transformation,让视觉BEV梦想照进现实
    原论文:MatrixVT:EfficientMulti-CameratoBEVTransformationfor3DPerception来自:CVPR2022,旷视科技,Submission-2022.11针对目前BEV中更有优势的Lift-Splat类方法中关键模块(VisionTransformation),MatrixVT实现了非常优雅的优化,在保持模型性能(甚至略微提高)的同时,能大幅降低计......
  • kettle从入门到精通 第二十六课 再谈 kettle Transformation executor
     1、前面文章有学习过Transformationexecutor ,但后来测试kettle性能的时候遇到了很大的问题,此步骤的处理性能太慢,导致内存溢出等问题。所以再次一起学习下此步骤的用法。 2、 如下图中rds-sametable-同步逻辑处理使用的是Transformationexecutor步骤,最后Speed列表示处理速......
  • [Codeforces] CF1506C Epic Transformation
    EpicTransformation-洛谷算是今天的题目里边思维难度最高的一道了,但是代码真的简单的要死题意你有一个长度为 \(n\) 的序列 \(a\),你可以对其进行下列操作:选择 \(i,j\) 满足 \(*a_i\neqa_j*\) 然后删除 \(*a_i,a_j*\) 两个数。求序列 a 经过若干次操作后最少......
  • CF1506C Epic Transformation
    CF1506CEpicTransformationEpicTransformation-洛谷算是今天的题目里边思维难度最高的一道了,但是代码真的简单的要死题意你有一个长度为 \(n\) 的序列 \(a\),你可以对其进行下列操作:选择 \(i,j\) 满足 \(a_i\neqa_j\) 然后删除 \(*a_i,a_j*\) 两个数。求序......
  • Image中的transformation理解【swt.snippet】
    /********************************************************************************Copyright(c)2000,2005IBMCorporationandothers.*Allrightsreserved.Thisprogramandtheaccompanyingmaterials*aremadeavailableunderthetermsoftheEclip......
  • Proj CDeepFuzz Paper Reading: Invariance-inducing regularization using worst-cas
    Abstract本文:Task:1.proveinvariance-inducingregularizerscanincreasepredictiveaccuracyforworst-casespatialtransformations2.provethatonadversarialexamplesfromtransformationgroupsintheinfinitedatalimitrobusttrainingcanalsoimpro......