AffineTransform.getScaleX()
和family是否有合法的用例?
它返回m00或变换矩阵的左上角元素,这对于确定矩阵的缩放是非常无用的。例如,考虑一个平凡的90度旋转矩阵,并且getScaleX()
和getScaleY()
都返回0。
我永远不会使用这个调用,因为它让代码读者感到困惑,他们可能不熟悉这样一个事实,即它没有以有意义的方式返回缩放,最好是getMatrix(m)
然后访问m[0],因为大多数可能阅读使用转换的代码的人都熟悉矩阵数学。
这肯定有一个用例,但我就是不明白。
最佳答案
正如您所写,x比例因子的概念在一般情况下是毫无意义的。它只与标度矩阵的特殊情况有关。即getType
返回TYPE_GENERAL_SCALE
或TYPE_UNIFORM_SCALE
的值。(也可以添加翻译)在其他情况下,getScaleX
是“正确的”,因为它按照文档所说的去做,但对其名称却毫无用处和误导性。类比推理适用于getShearX
,它只在剪切矩阵的上下文中有意义。getTranslateX
有点不同,因为有人可能会争辩说,这是原点被转换到的地方,而不管矩阵暗示的所有其他转换。