二维图形旋转公式的推导

二维图形旋转公式的推导

大家好,又见面了,我是全栈君。

    关于二维图形旋转可能在非常多计算机图形学相关的书籍上都会介绍,然而真正理解公式推导过程的却讲得不多。

那么怎样推导出二维图形绕某一点旋转的公式呢?我在这里就将其推导过程简要的说明一下。

事实上推导过程比較简单,首先我们来看一幅图,看看怎样推导出二维图形绕原点进行旋转的公式。

二维图形旋转公式的推导

上图画的比較粗略,只是能说明问题就够了。如果旋转前的点位于P处。旋转之后的点位于P’处。

怎样求旋转之后的点P’坐标?

在图中。旋转之前P的方向角是a,旋转之后P’的方向角就变为a+b,这里b就是旋转的角度。所谓方向角是改点和原点连线与X轴正向的夹角。旋转的正方向是逆时针

在图中,从P’点向X轴引垂线,垂足为B点,依据三角形的基础知识,能够写出例如以下的等式。

二维图形旋转公式的推导

公式1中的R就是点P以及P’到原点的距离

由公式1,依据高中三角函数的知识,即和差公式得到例如以下等式2

二维图形旋转公式的推导

通过观察上式,Rcos(a)=x,Rsin(a)=y,所以上式进一步花间能够得到以下的等式。

二维图形旋转公式的推导

这个公式就是我们常常看到的二维图形旋转的公式。这样绕原点的旋转公式推导出来了,那么嗨常常碰到的绕某一点旋转的,比方绕着矢量图形的中心旋转的。

在这样的情况下,首先须要平移。然后旋转。最后平移回去,详细步骤例如以下。

二维图形旋转公式的推导

由上图可知,(x0,y0)是旋转的顶点。那么先将图形平移到原点,然后绕着原点旋转b角度,最后平移到(x0,y0)上去。

那么非常easy可知绕随意一点(x0,y0)旋转的公式为

二维图形旋转公式的推导

是不是比較简单,我认为还行。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116344.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Centos7安装Nginx的步骤「建议收藏」

    Centos7安装Nginx的步骤「建议收藏」Centos7安装Nginx准备工作:开始前,请确认gccg++开发类库是否装好安装make:yum-yinstallgccautomakeautoconflibtoolmake安装g++:yuminstallgccgcc-c++下面正式开始:一、选定安装文件目录  可以选择任何目录,演示选择 cd/usr/local/srccd/usr/local/src二、安装PC…

  • Ubuntu安装配置MySQL_nginx upstream

    Ubuntu安装配置MySQL_nginx upstream系Ubuntu安装配置nginx提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章Python机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系Ubuntu安装配置nginx前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。

  • jedis与redistemplate_第六十二卦详解

    jedis与redistemplate_第六十二卦详解文章目录Redis详解(六)Jedis操作Redis1.下载jedis和commons-pool单独使用jedis2.Java应用使用Jedis准备Redis详解(六)Jedis操作Redis使用jedis在java应用中操作Redis。Jedis几乎涵盖了redis的所有命令。jedis源码:https://github.com/redis/jedis1.下载jedis和commons-pool<!–https://mvnrepository.com/artifact/redis.

  • Windows Server 2016 NTP服务端和客户端配置[通俗易懂]

    Windows Server 2016 NTP服务端和客户端配置[通俗易懂]目标:A、B两台WindowsServer2016系统的服务器。B要做为NTP服务器使用,而只有A可以连到互联网。所以先将A作为NTP服务端,再将B作为既是服务端又是客户端。其它设备同B服务器同步时间。服务端:1.微软键+R键,进入“运行”,输入“regedit”,进入注册表2.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSe…

  • Linux学习—vim文本编辑器学习

    1 VIM编辑器概述 什么是vi:可视化接口(Visual Interface). vi————> vim 升级那些提升!支持多级撤销 u跨平台运行语法高亮支持图形界面

  • 使用CCUserDefault 推断用户是否是第一次登陆系统及UserDefault全路径的获取「建议收藏」

    使用CCUserDefault 推断用户是否是第一次登陆系统及UserDefault全路径的获取

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号