图片角度调整 适配缩放 transform scale rotate

在某些情况下,我们常常需要对图片的角度进行调整并展现在页面上,比如常见的身份证图片。

以下是相关代码示例:

-webkit-transform:rotate(90deg);
transform:rotate(90deg);

然而,在调整后会发现,图片在 div 中的呈现与实际盒子大小并不一致。此时,若采用传统方法去获取宽高,会发现图片的宽高并不会因呈现的大小而改变。

这就需要通过 JavaScript 的原生方法来获取呈现后的宽高:

let _clientRect = Element.getBoundingClientRect();

接着,依据原始宽高与调整后呈现宽高的比例来确定 x 轴和 y 轴的缩放比例。

translateX = (originalWidth /_clientRect.width).toFixed(2);
let translateY = (originalHeight / _clientRect.height).toFixed(2);

最后设置:

display: inline-block;
transform:scale(${translateX},${translateY}) rotate(90deg);
-webkit-transform:scale(${translateX},${translateY}) rotate(90deg);
### 实现围绕Y轴旋转90的操作方法 在Unity中,可以通过 `Transform.Rotate` 方法实现围绕特定轴的旋转操作。以下是一个围绕Y轴旋转90的代码示例[^3]: ```csharp using UnityEngine; public class RotateExample : MonoBehaviour { void Update() { // 使用 Transform.Rotate 方法围绕Y轴旋转90 transform.Rotate(new Vector3(0, 90, 0) * Time.deltaTime); } } ``` 上述代码中,`transform.Rotate` 方法接受一个 `Vector3` 参数,表示围绕X、Y、Z轴的旋转角度。通过将 `new Vector3(0, 90, 0)` 乘以 `Time.deltaTime`,可以确保旋转与帧率无关[^3]。 需要注意的是,如果需要直接设置对象的角度为绝对值(例如直接设置为90),可以使用 `transform.eulerAngles` 属性。然而,不建议通过递增 `eulerAngles` 来实现旋转,因为当角度超过360时可能会导致错误行为[^1]。因此,推荐使用 `Transform.Rotate` 方法来执行旋转操作[^2]。 ### 注意事项 - 如果需要一次性旋转90,可以直接调用 `transform.Rotate(0, 90, 0)` 而无需乘以 `Time.deltaTime`。 - 如果需要平滑旋转,可以通过结合 `Time.deltaTime` 和目标角度来实现更流畅的效果。 ```csharp using UnityEngine; public class SmoothRotateExample : MonoBehaviour { public float rotationSpeed = 90f; // 每秒旋转90 void Update() { // 平滑旋转90每秒 transform.Rotate(new Vector3(0, rotationSpeed * Time.deltaTime, 0)); } } ``` 此代码片段实现了每秒围绕Y轴平滑旋转90的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值