【问题标题】:Calculate transform-origin from original and scaled boxes从原始和缩放框计算变换原点
【发布时间】:2012-12-13 00:40:40
【问题描述】:

基于原始 rect1 (x1, y1, w1, h1) 和已知的缩放 rect2 (x2, y2, w2, h2) 找出使用什么变换原点的公式是什么?我需要一个可重复使用的公式,因为 rect2 可以放置在任何地方。

换句话说,我知道一个小矩形的边界,并希望它通过应用正确的变换原点坐标(以 px 或 % 为单位)过渡到更大的矩形。

【问题讨论】:

标签: css transform


【解决方案1】:

在简单的缩放中,变换原点的x坐标为tx的距离x1 -> tx和tx -> (x1+w1)之间的比率在缩放后保持不变。一句话:

(tx-x1)/w1 = (tx-x2)/w2

求解 tx,得到:

tx = (w2/(w2-w1)) * (x1 - (x2 * w1)/w2)

类比公式会产生你的类型。

(请注意,如果您使用带有 z 变换的透视,那么这个公式将是错误的,如果您也不知道您的透视原点,那么我相信结果将是不确定的,因为会有无限的透视组合origin 和 transform origin 将产生相同的结果。如果您知道透视原点,那么数学仍然相当复杂。)

【讨论】:

  • 嗯,看起来不错;由于在我的情况下 x1 始终为 0,我什至可以将公式简化为 (w1 * x2) / (w1 - w2);我会尽快确认:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-24
  • 2012-04-21
  • 1970-01-01
  • 2021-08-18
  • 2018-01-26
  • 1970-01-01
相关资源
最近更新 更多