扭曲多边形(像 Photoshop 的扭曲)(透视变换)

Posted

技术标签:

【中文标题】扭曲多边形(像 Photoshop 的扭曲)(透视变换)【英文标题】:Distorting a polygon (Like Photoshop's distort) (Perspective Transformation) 【发布时间】:2010-07-17 05:20:11 【问题描述】:

在 Photoshop 中有一个工具可以“扭曲”选区。这允许轻松创建阴影等。这种变形如何应用于多边形(一堆点)?

谢谢

【问题讨论】:

请为那些手头没有 Photoshop 的人发布一个图像对(前后) 【参考方案1】:

如果您的目标是完成这样的事情(黑色原件,变形后红色)

那么你可以:

修复应用变形的基础(例如,通常垂直于您要变形的方向 - 这里变形的方向是向右,基础是矩形的底部边缘) 将图形上的每个点位移一个与其与底部的距离成比例的距离,例如 - 点 A(假设它位于 70% 高度)将位移 0.7 * (左上角的位移)的距离点)

使用这样一个扭曲循环的序列,你可以得到你想要的变换。

【讨论】:

【参考方案2】:

除非我弄错了,否则所有这些都链接到矩阵中 - 你会想在网上查找它,我不会在几周内看到它,但我想我不妨给你一个指针。

【讨论】:

Perspective 或 Projective Transform 比大多数 affine transform 更复杂,扭曲和阴影通常涉及模糊。【参考方案3】:

这种特殊的失真(如图)被称为“剪切”效应,只是一个问题 对多边形的每条扫描线应用水平偏移。

许多图形效果都可以用像这样的简单基元来完成(甚至还有剪切 旋转)。

与 Google 一起看看“Graphic GEMS”。

【讨论】:

以上是关于扭曲多边形(像 Photoshop 的扭曲)(透视变换)的主要内容,如果未能解决你的问题,请参考以下文章

如何将布局扭曲到任何四边形?

在 Android 上的某些情况下,将图像扭曲为四边形会失败

如何在openGL中扭曲纹理? (透视校正?)

Unity Shader - Curved World - 类似 地铁跑酷,动物森友会 的世界扭曲效果 - 球形透视

使用单应性扭曲图像的四个角并返回无效的四边形

Photoshop经常使用快捷键