线性代数妙用:怎样在Windows画图软件中实现28度旋转?.doc

线性代数妙用:怎样在Windows画图软件中实现28度旋转?.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
线性代数的妙用:如何在Windows绘图软件中实现28度旋转? 线性代数的妙用:如何在Windows绘图软件中实现28度旋转? PAGE / NUMPAGES 线性代数的妙用:如何在Windows绘图软件中实现28度旋转? 线性代数的妙用:如何在 Windows 绘图软件中实现 28 度旋转? 在初期的小型图像编写软件中,考虑到时间空间的限制,再加 上算法自己的难度,好多看似特别简单的功能都没法实现。比方说, 好多图像编写软件只同意用户把所选的内容旋转 90 度、 180 度或 者 270 度,不支持随意度数的旋转。毕竟,假如我们不过旋转 90 度的整数倍,那么全部像素不过是在做某些有规律的轮换,这甚至 不需要额外的内存空间就能达成。可是,假如旋转其他度数,那么 在采样和反锯齿等方面都将会有不小的挑战。 可是, Windows 自带的绘图软件聪慧地用 skew 功能(中文版 翻译成 “歪曲 ”)部分地填充了没法自由变形的缺点。随意选中图中 的一块地区,再在菜单栏上选择 “图像 ”→“拉伸 /歪曲 ”,而后在 “水平 歪曲 ”那边填写一个 -89 到 89 之间的整数(表示一个角度值),再 按一下确立,于是整个图形就会像下列图所示的那样被拉斜,此中 θ 就是你方才填的度数。假如你填入的 θ是负数值,则倾斜的方向会 与下列图方向相反。近似地, “垂直歪曲 ”功能会在竖直方向上对图形 进行拉扯,假如角度值为正数,则整个图形会变得左低右高,假如 角度值为负数,则整个图形会变得左高右低。 可是,这玩艺儿关于我们来说仿佛完整没用。预计 99% 的人在 使用绘图软件的时候就素来没用过这个功能吧。假如真是这样,那 么今日的问题唯恐将会是大家近来一段时间见过的最风趣的问题了: 想方法利用 Windows 绘图中的歪曲功能(近似地)实现 28 度旋转。 答案:以下列图,第一水平歪曲 -14 度,而后垂直歪曲 25 度,最后 再水平歪曲 -14 度即可。这样的话,画板中被选中的内容将会被逆 时针旋转 28 度。 为何?这是因为,歪曲的实质其实就是在原图长进行一个线 性变换。水平歪曲实质上相当于是对图像各前进行平移,平移量与 纵坐标的地点成正比。而这又能够看作是对每个点履行了下列图所示 的矩阵乘法操作: 近似地,垂直歪曲则相当于对每个点履行了这么一个矩阵乘法 的操作: 此外,因为 所以 而最后一行就是大家特别熟习的旋转矩阵! 也就是说,连续履行上式中的三次歪曲,就能够实现旋转 θ度 了。此中,第一次歪曲和第三次歪曲都是水平歪曲 -θ/2度,当 θ = 28°时,我们应当填写的度数就是 -14 。麻烦的就是第二次歪曲: 它看上去其实不切合垂直歪曲矩阵的标准形式。垂直歪曲矩阵中,左 下角那一项应当是 tan( θ,)而并不是 sin( θ。)可是,我们完整能够用 正切值去模拟 sin( θ呀)!利用计算机能够解得,当 θ = 28 °时, sin(28 °)约为 0.469 ,离它近来的正切值是 tan(25 °) ≈ 0.466。所以, 我们在第二步的时候填入了垂直歪曲 25 度。 值得一提的是,实质上我们已经获得了一种特别高效而且特别 简单编写的图像旋转算法:只要要连续调用三次歪曲操作即可。而 每次歪曲操作实质上都是对各行或许各列的像素进行平移,因此整 个算法完整不需要任何额外的内存空间!依据 Wikipedia 的描绘, 这类方法是由 Alan Paeth 在 1986 年提出的。 因为 tan(25 °)其实不精准地等于 sin(28 °),因此这里实现的 28 度旋转也其实不是绝对精准的。可是,绘图软件自己还供给了水平缩 放和垂直缩放的功能,把它们也加进来的话,线性变换的复合将会 变得更为灵巧,也许我们就能设计出一些更复杂但却更精准的旋转 方案了。这些问题就留给感兴趣的读者持续研究吧。

文档评论(0)

zdq0909 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档