你什么时候使用AffineTransform getScaleX()?

时间:2014-04-14 07:04:47

标签: java matrix awt affinetransform

AffineTransform.getScaleX()和家人是否有合法用例?

它返回变换矩阵的m00或左上角元素,这对于确定矩阵的缩放非常无用。例如,考虑一个普通的90度旋转矩阵,getScaleX()getScaleY()都返回0。

我永远不会使用这个调用,因为它让代码阅读器感到困惑,因为代码阅读器可能不熟悉它不会以有意义的方式返回缩放的事实,更好的是getMatrix(m)然后访问m [ 0],因为大多数人可能阅读使用转换的代码都熟悉矩阵数学。

必须有一个用例,但我不明白。

1 个答案:

答案 0 :(得分:1)

正如您所写的那样,x缩放因子的概念在一般情况下毫无意义。它仅与缩放矩阵的特殊情况相关。即那些getType返回TYPE_GENERAL_SCALETYPE_UNIFORM_SCALE的人。 (也可以添加翻译)在其他情况下,getScaleX是“正确的”,因为它完成了文档所说的内容,但对其名称没有用处和误导性。类比推理适用于getShearX,它仅在剪切矩阵的上下文中产生感觉。 getTranslateX有点不同,因为无论矩阵意味着什么其他变换,都可以说这是原点被转换的地方。