gpt4 book ai didi

java - 为什么 Java AffineTransforms 是反向复合的?

转载 作者:行者123 更新时间:2023-11-30 07:09:42 27 4
gpt4 key购买 nike

使用 Graphics2DAffineTransforms 完成的 Java 转换具有最后指定、最先应用的顺序。例如,要旋转一个组件然后对其进行平移,您首先调用 translate(),然后调用 rotate()。这是为什么?是否有一些应用程序或实现有利于它?对我来说,这似乎违反直觉。

我知道 AffineTransforms 是用矩阵表示的,并且(虽然我不知道细节)可以通过将矩阵相互相乘来连接多个变换。我不明白的是为什么这似乎是右乘而不是左乘。

最佳答案

这样想:后面指定的转换更接近后面的绘图基元,因此首先应用。

此序列使得将转换应用于复杂绘图变得更加简单。假设您有一个方法可以绘制一些复杂的图形并使用自身也进行转换。您希望图形以不同的大小出现两次。您可以先设置缩放转换,然后调用您的方法。对于第二次出现,您设置了另一个缩放比例,然后再次调用您的方法。

如果以其他顺序指定转换,则这是不可能的。

关于java - 为什么 Java AffineTransforms 是反向复合的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22796137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com