如何缩放对象并更改位置以保持一个固定点

时间:2016-11-12 22:16:50

标签: algorithm unity3d

注意:我使用Unity3D来完成此操作,但我很确定这是一个通用的问题。

我有一个对象,我想缩放它然后翻译它,以便当缩放该对象时,我选择的图片上的一个特定点将在缩放后保留在相同的位置。

基本上,这张图片:

enter image description here

如果我正在缩放宽度为w且高度为h的对象,位置(x,y)(位置是图像的中心)的系数为s,我需要翻译多少才能保持固定指向(a,b)点。

编辑:我忘了在Unity中提到默认情况下对象是从对象的中心缩放的

1 个答案:

答案 0 :(得分:1)

  1. 通过减去位置进行翻译(它现在以原点为中心,缩放在所有方向都相等)
  2. 按照您希望保持不缩放的偏移量进行翻译
  3. 缩放
  4. 撤消您从
  5. 开始的两个翻译

    从技术上讲,前两个步骤可以合并,如果你知道绝对坐标的偏移量,但通常人们用局部坐标测量它。