0

我有一个图像,通过应用 z translate 和一些视角,视觉上应该变得更大。我需要计算 z 方向dist的平移距离,这将导致初始图像投影的尺寸增加一些因素

4

1 回答 1

2

透视属性设置观察者到场景的距离;这与从观察者到初始(未转换)元素的距离相同。

当您应用变换时,会更改此位置,因此元素的最终距离将减少此数量。

元素的表观大小将与此变化成正比

初始距离=透视

最终距离 =透视-平移-z

比率=初始/最终

如果透视是1000px,translateZ是750px,这将导致最终距离为250px,比例为4。图像将获得4x的缩放效果

逆演算是:

translateZ = 透视 * (1 - 因子)

以 1000px 透视和平移 750px 实现因子 4 的示例

.base {
  width: 100px;
  height: 100px;
  perspective: 1000px;
  perspective-origin: -3px -2px;
  border: solid 1px red;
}
.transform {
  width: 25px;
  height: 25px;
  border: solid 1px blue;
  transform: translateZ(750px);
  left: 34px;
  top: 34px;
}
<div class="base">
<div class="transform"></div>
</div>

于 2015-02-01T11:04:32.333 回答