c# – 2个向量与旋转的差异
我已经把这个问题暂时搁置了一段时间,而且我不知道如何解决这个问题.
问题: 目前正试图做一个虚假的“摇摆”时刻.如果我将玩家对象变成对象的子对象,则可以在keypush期间锁定. 考虑到这一点,我需要在抓斗对象上获得正确的旋转,使得玩家的速度成为抓斗对象上的正确旋转. 这不是2D,而是3D.这引起了这种头痛. http://img843.imageshack.us/img843/7434/rotations.jpg 我想如果我能得到位置矢量,以及玩家前进方向的矢量,就像角色电机的速度一样,得到一个独特的矢量,这个矢量信息应该能够旋转抓斗对象正确. 然而,这就是我认为很容易的事情,但是我已经在这几个小时内乱砍这个向量差异以进行旋转,因为它被认为是. TL:博士 2向量,这两个对应一个向量的差异,这个向量控制grappleobject的旋转“假”一个具有适当速度的摆动运动. 如果有答案,请提前感谢您. 添加信息: 目前的测试一直是这些. /// Parent Orb是grappleobjects,它根据触发事件更新其变换. CurDirection = (transform.position-ParentOrb.position); CurDirection.Normalize(); motor.movement.velocity = (CurDirection); CurPos = transform.position; //// 还尝试了从抓斗对象到玩家的角度. /// otherDirection =空间速度的方向. Vector3 targetDir = otherDirection; Vector3 forward = otherDirectionPre; angle = Vector3.Angle(targetDir,forward); /// 解决方法
我想你知道击中点和中心之间的半径,我们称之为r.随着玩家的速度v和轴的角速度ω(=ω),玩家应该连接到你有矢量方程式:
v =ω×r 假设所有3个向量彼此垂直,则有ω= v / r. 编辑:从中心位置和碰撞接触点得到半径r: Vector3 r = collision.contacts[0].point - center; float radius = r.magnitude; float angularSpeed = rigidbody.veloctiy.magnitude / radius; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |