问题标签 [affinetransform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3516 浏览

java - 旋转和缩放——如何兼顾两者并获得正确的结果?

我有一组在图形上下文中绘制矢量的 Java2D 调用。我希望图像的大小翻倍,然后旋转 90 度。

我正在使用以下代码来执行此操作:

这会旋转和缩放,但是,比例并没有按照我想要的方式应用。就好像它在缩放之前旋转,从而使图像在错误的轴上变宽。

有一个更好的方法吗?

0 投票
5 回答
26018 浏览

java - AffineTransform:从中心缩放形状

我正在尝试使用 AffineTransform 从其中心缩放一个矩形。我确信解决方案是显而易见的,但我无法让它发挥作用!这是我到目前为止测试过的...

但它不起作用....有什么建议吗?

0 投票
4 回答
7002 浏览

java - 将一个三角形转换为另一个三角形

嗨,我正在尝试创建仿射变换,这将允许我将三角形转换为另一个三角形。我所拥有的是 2 个三角形的坐标。你能帮助我吗?

根据 Adam Rosenfield 的回答,我想出了这段代码,以防有人厌倦了自己求解方程:

0 投票
1 回答
2643 浏览

java - Java AffineTransform 移动原点

我想将原点从组件的左上角移动到中下角?我一直在玩 AffineTransform 类无法让它工作?

0 投票
1 回答
725 浏览

iphone - 有没有办法获得代表当前层状态的总仿射变换?

我的意思是,如果我有一个对象并对其应用 3 个变换,例如,假设我不知道每个变换在做什么,但我有矩阵。

所以我有

对象 X > transform1 > transform2 > transform3 > 最终结果

有没有办法获得可以表示 3 个变换的仿射变换,所以我只需进行一次变换就可以获得相同的结果?例如

对象 X > 超级变换 > 最终结果

其中超级变换 = 变换 1 > 变换 2 > 变换 3

我如何使用 CGAffineTransform 在 iphone sdk 上做到这一点?

谢谢你的帮助。

0 投票
4 回答
5475 浏览

iphone - 使用 MKMapView 旋转的经验

我有一个正在考虑旋转的 MKMapView,以便更方便地向我的用户显示一系列注释。

到目前为止,我正计划使用 CGAffineTransform 简单地旋转整个视图,但我想知道是否有人对 MKMapView 旋转有任何经验。

  • 在添加轮换时,您是否遇到过任何陷阱或“陷阱”?
  • 有没有更简单的方法来旋转地图视图?
  • 如果我有一个叠加层,convertCoordinate:toPointToView: 方法是否仍然以相同的方式工作?我会假设我必须对我的叠加应用相同的变换以使点对齐,但也许该方法比这更聪明。

如果有什么你认为可以帮助我的事情,我很想听听。


编辑:经过大量实验,我相信我将使用可以旋转和覆盖自己的静态地图,但是,我仍然会对有关 MKMapView 旋转的任何信息感兴趣。

0 投票
4 回答
2682 浏览

graphics - 仿射变换

我正在尝试解决以下问题。我对仿射变换了解不多。有人可以帮我回答这个问题:

找到一个 3x3 矩阵,表示齐次坐标的 2D 仿射变换(即每个点[x,y]都表示为一个列向量[x, y, 1]),它将正方形[0,0],[1,0],[1,1],[0,1]转换为平行四边形[0,1],[1,1],[2,2],[1,2]

0 投票
2 回答
787 浏览

java - AffineTransformOp 速度/内存问题

我以前问过这个问题,但我想改写/澄清一些观点并对其进行扩展。我有一段代码使用 AffineTransform 转换 BufferedImage。

此代码工作正常,但它会导致内存积累。具体来说,每次调用这段代码时都会存储更多内存。我也尝试过其他形式的过滤器。

但是,这比第一个版本要慢得多。我想要第一个版本的速度和第二个版本的内存使用量。

  1. 第一个版本后如何清理?具体来说,中间 BufferedImages 存储在哪里,如何删除它们?
  2. 为什么第二个版本比第一个慢?我该怎么做才能加快速度?

谢谢你的帮助!!!

0 投票
5 回答
6357 浏览

iphone - 如何进行抛物线翻译?

我正在开发一个带有一些简单动画的 iPhone 应用程序。

我有一个我想翻译的观点,但不是沿着一条线。我想把它翻译成抛物线。想象一下,我正在为一辆沿着弯曲道路行驶的汽车制作动画。

我知道我可以将转换正确设置为 CGAffineTransform 的实例

问题是,我不知道如何创建转换。我知道如何缩放、翻译等,但如何进行抛物线翻译?甚至可能吗?

0 投票
4 回答
20159 浏览

java - 旋转 BufferedImage 的问题

我在使用 AffineTransform 类在 Java 中旋转图像时遇到了一些问题。

我有以下方法来创建图像的旋转(90 度)副本:

Rotation 是一个简单的枚举,其值为 NONE、CLOCKWISE 和 COUNTERCLOCKWISE。

我的问题的症状显示在这里:

http://perp.se/so/rotate_problems.html

因此,旋转工作正常,但生成的图像没有锚定到正确的坐标(或者应该如何放置)。而且由于我一开始并不真正知道自己在做什么(我的线性代数很弱),所以我不知道如何自己解决这个问题。

我试过随机摆弄 AffineTransform 实例,但它并没有帮助我(当然)。我试过谷歌搜索(和搜索),但我看到的所有例子基本上都使用与我相同的方法......这对我不起作用。

感谢您的建议。