专栏首页游戏开发之旅2D图像中点的旋转

2D图像中点的旋转

2D图像中点的旋转

先从向量内积说起,向量a = (x1, y1),b = (x2, y2)

a▪b = <a,b>= |a||b|cosθ = x1x2+ y1y2

几何表示

a.b = |a|cosθ|b|

如果b为单位向量,|b|=1,那么向量a,b的内积就是向量a在向量b方向上的投影

点的逆时针旋转可以看做是以原点为起点的向量绕原点逆时针旋转;更进一步,保持向量不动,让坐标轴顺时针旋转θ。

看看向量是如何在笛卡尔坐标系中表示的吧!

a = (x0, y0)其中的x0, y0是向量a在x轴和y轴上的投影长度。

同理,向量在新坐标系下的表示(x’, y’)是向量在新坐标轴上的投影

坐标轴旋转,新的坐标轴可以表示为 x1 = (cosθ, -sinθ), y1 = (sinθ, cosθ) 这里用单位向量表示,只是指示一下新坐标轴的方向而已。

假设向量a在与新坐标轴X1的夹角为φ,那么a在X1上的投影为<a,X1>也就是向量a与X1的点积,因为坐标轴X1为单位向量,所以点积即为投影长度。

同理<a, Y1>为向量在新坐标轴Y1上的投影长度,

于是x1cosθ-y1sinθ = x’

x1sinθ + y1cosθ=y’

写成矩阵相乘的形式

顺时针旋转可以同理求得,这里不在详述。

同样的思考方式可以应用在PCA理解上

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C#线程的使用(二):检测线程的结束

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    bering
  • Unity Profiler内存分析

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明...

    bering
  • NodeJS学习一(创建启动服务)

    在一个父级以及父级以上非中文命名的文件夹新建一个文件夹,当做该博客项目目录(如果含有中文安装模块会报错),这里命名为blog文件夹,打开终端cd切...

    bering
  • android绘制触点轨迹的代码

    本文实例为大家分享了android绘制触点轨迹的具体代码,供大家参考,具体内容如下

    砸漏
  • 4个for/while循环语句及case语句实用脚本

    脚本1:工作中如果要批量关机,可使用以下脚本查看192.168.4.0网段哪些是关机,哪些是开机状态。 ? 备注:1.{1..254}也可写作`seq 1 ...

    吴柯
  • 腾讯设计师:写给新人的8个进阶建议

    其实在学生时代就已经很明确自己想要从事设计的这条路,从毕业到现在也一直在做设计的工作,所以个人觉得非常幸运可以把兴趣与工作相结合。虽然说兴趣是最好的导师,但是更...

    用户1730674
  • HDUOJ ---1269迷宫城堡

    http://acm.hdu.edu.cn/showproblem.php?pid=1269 迷宫城堡 Time Limit: 2000/1000 MS (Ja...

    Gxjun
  • UX的设计灵感从哪里来?——看看Megan Wilson的采访

    Megan Wilson是一位资深的用户体验师和UX Motel的专业编辑。同时她是ux.walkme.com网站UX专栏作家,在Facebook、领英有大量...

    奔跑的小鹿
  • OpenCV系列之图像阈值 | 十五

    在这里,问题直截了当。对于每个像素,应用相同的阈值。如果像素值小于阈值,则将其设置为0,否则将其设置为最大值。函数cv.threshold用于应用阈值。第一个参...

    磐创AI
  • event事件句柄的封装

    版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/articl...

    空空云

扫码关注云+社区

领取腾讯云代金券