gpt4 book ai didi

c# - 2 向量差旋转

转载 作者:行者123 更新时间:2023-11-30 12:48:37 26 4
gpt4 key购买 nike

一段时间以来,我一直在为这个问题绞尽脑汁,但我一直在思考这个问题。

问题:

目前正在尝试做一个假的“摇摆”时刻。我让播放器对象成为一个对象的子对象,您可以在按键期间锁定该对象。

考虑到这一点,我需要在 grappleobject 上获得正确的旋转,使玩家的速度成为 grappleobject 上的正确旋转。

这不是 2D,而是 3D。这导致了这种头痛。

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

我想如果我能得到位置向量和玩家前进方向的向量,就像角色马达的速度一样,得到一个唯一的向量,这个向量信息应该能够正确旋转抓取对象。

然而,这就是我认为很容易的事情,但我已经花了好几个小时来解决这个问题,以获得矢量差异来进行旋转,因为它被认为是。

tl:dr

2 个向量,这两个向量的区别,这个向量控制抓斗对象的旋转,以适当的速度“假”摆动 Action 。

如有答复,提前致谢。

添加信息:

目前的测试是这些。

///

Parent Orb 是根据触发事件更新其变换的抓取对象。
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 和轴的角速度 ω (=omega) 玩家应该连接到你有向量方程:

v = ω × r

假设所有 3 个向量都相互垂直,您有 ω = v/r。

编辑:您从中心位置和碰撞接触点得到半径 r:

Vector3 r = collision.contacts[0].point - center;
float radius = r.magnitude;
float angularSpeed = rigidbody.veloctiy.magnitude / radius;

关于c# - 2 向量差旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13611896/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com