【问题标题】:When would you use AffineTransform getScaleX()?什么时候使用 AffineTransform getScaleX()?
【发布时间】:2014-04-14 07:04:46
【问题描述】:

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

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

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

这肯定有一个用例,但我就是不明白。

【问题讨论】:

    标签: java matrix awt affinetransform


    【解决方案1】:

    正如您所写,x 比例因子的概念在一般情况下是毫无意义的。它仅与缩放矩阵的特殊情况有关。 IE。 getType 返回 TYPE_GENERAL_SCALETYPE_UNIFORM_SCALE 的那些。 (也可以添加翻译)在其他情况下,getScaleX 是“正确的”,因为它按照文档所说的方式执行,但对其名称无用且具有误导性。类似的推理适用于getShearX,它仅在剪切矩阵的上下文中才有意义。 getTranslateX 有点不同,因为有人可能会争辩说这是原点被转换到的地方,而不管矩阵所暗示的所有其他转换。

    【讨论】:

    • 基本上这就是我一直在寻找的答案,但我会在接受之前等待一些,以防有人知道/想出更好的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多