时间:2021-05-20
本文实例为大家分享了Unity实现绕任意轴任意角度旋转向量的具体代码,供大家参考,具体内容如下
游戏中有一需求,就是一个矩形或者Cube绕着某一点旋转任意角度,现在给出下面算法。
public static Vector3 RotateRound(Vector3 position, Vector3 center, Vector3 axis, float angle) { Vector3 point = Quaternion.AngleAxis(angle, axis) * (position - center); Vector3 resultVec3 = center + point; return resultVec3; }测试用例
using UnityEngine;using System.Collections; public class RotateTest : MonoBehaviour { public LineRenderer line1; public LineRenderer line2; public float angle = 30f; private Vector3 v0; private Vector3 v1; private Vector3 v2; private Vector3 v3; private Vector3 v4; private Vector3 vCenter; void Start() { v0 = new Vector3(3f,0f,1f); v1 = new Vector3(1f, 0f, 3f); v2 = new Vector3(4f, 0f, 6f); v3 = new Vector3(6f, 0f, 4f); vCenter = new Vector3(2f, 0f, 2f); } // Use this for initialization void Update () { line1.SetVertexCount(5); line1.SetPosition(0,v0); line1.SetPosition(1,v1); line1.SetPosition(2,v2); line1.SetPosition(3,v3); line1.SetPosition(4,v0); line2.SetVertexCount(5); Vector3 v01 = MathUtils.RotateRound(v0, vCenter, Vector3.up, angle); Vector3 v11 = MathUtils.RotateRound(v1, vCenter, Vector3.up, angle); Vector3 v21 = MathUtils.RotateRound(v2, vCenter, Vector3.up, angle); Vector3 v31 = MathUtils.RotateRound(v3, vCenter, Vector3.up, angle); Vector3 v41 = MathUtils.RotateRound(v4, vCenter, Vector3.up, angle); line2.SetPosition(0, v01); line2.SetPosition(1, v11); line2.SetPosition(2, v21); line2.SetPosition(3, v31); line2.SetPosition(4, v01); }}效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
用cad制图时常常需要对图块进行旋转,但是旋转的角度又不一定是整数,我之前分享过一个任意比例缩放的经验,也可用进行任意角度旋转,但是最常用的还是下面要分享的
本文实例为大家分享了Unity实现物体沿任意轴向旋转,供大家参考,具体内容如下一、创建一个需要旋转的物体二、编写控制该物体的脚本usingUnityEngine
pr里怎么让图片绕这个y轴旋转?premiere中想要让图片绕y轴旋转,该怎么设置呢?下面我们就来看看详细的教程。软件名称:AdobePremierePro20
引入下方的jquery.rotate.js文件,然后通过$("选择器").rotate(角度);可以旋转任意角度,例如$("#rotate-image").ro
本文实例为大家分享了Unity向量按照某一点进行旋转的具体代码,供大家参考,具体内容如下一、unity的旋转首先要知道一点就是在Unity的旋转中使用过四元数进