加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 2个向量与旋转的差异

发布时间:2020-12-15 21:43:25 所属栏目:百科 来源:网络整理
导读:我已经把这个问题暂时搁置了一段时间,而且我不知道如何解决这个问题. 问题: 目前正试图做一个虚假的“摇摆”时刻.如果我将玩家对象变成对象的子对象,则可以在keypush期间锁定. 考虑到这一点,我需要在抓斗对象上获得正确的旋转,使得玩家的速度成为抓斗对象上
我已经把这个问题暂时搁置了一段时间,而且我不知道如何解决这个问题.

问题:

目前正试图做一个虚假的“摇摆”时刻.如果我将玩家对象变成对象的子对象,则可以在keypush期间锁定.

考虑到这一点,我需要在抓斗对象上获得正确的旋转,使得玩家的速度成为抓斗对象上的正确旋转.

这不是2D,而是3D.这引起了这种头痛.

http://img843.imageshack.us/img843/7434/rotations.jpg

我想如果我能得到位置矢量,以及玩家前进方向的矢量,就像角色电机的速度一样,得到一个独特的矢量,这个矢量信息应该能够旋转抓斗对象正确.

然而,这就是我认为很容易的事情,但是我已经在这几个小时内乱砍这个向量差异以进行旋转,因为它被认为是.

TL:博士

2向量,这两个对应一个向量的差异,这个向量控制grappleobject的旋转“假”一个具有适当速度的摆动运动.

如果有答案,请提前感谢您.

添加信息:

目前的测试一直是这些.

///

Parent Orb是grappleobjects,它根据触发事件更新其变换.
CurDirection是玩家在世界中的向量中前进的地方.
CurPos是玩家在世界范围内的时间点.

CurDirection = (transform.position-ParentOrb.position);
 CurDirection.Normalize();

 motor.movement.velocity = (CurDirection);
 CurPos = transform.position;

////

还尝试了从抓斗对象到玩家的角度.

///

otherDirection =空间速度的方向.
?OtherDirectionPre =空间中的当前位置.

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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读