如何在Unity3D中计算“法向量A向任意法向量B旋转,使得两个向量夹角减小N度后的A向量”
简单的说,已知:任意法向量A,任意法向量B。求:A向B旋转靠拢N度后的结果。如果AB处于反向,返回vector3.zero,如果AB同向,返回B请帮我完善这个函数:Vec...
简单的说,
已知:任意法向量A,任意法向量B。
求:A向B旋转靠拢N度后的结果。
如果A B 处于反向,返回vector3.zero,如果A B 同向,返回B
请帮我完善这个函数:
Vector3 ApproachToOtherVector(Vector3 baseVector, Vector3 TargetVector, float angle)
{
} 展开
已知:任意法向量A,任意法向量B。
求:A向B旋转靠拢N度后的结果。
如果A B 处于反向,返回vector3.zero,如果A B 同向,返回B
请帮我完善这个函数:
Vector3 ApproachToOtherVector(Vector3 baseVector, Vector3 TargetVector, float angle)
{
} 展开
1个回答
展开全部
其实我不太明白你究竟想要什么……
如果只是返回zero或者B的话,我只需要判断AB方向就可以了,何苦还要计算旋转呢?
判断方向很容易,可以使用
Vector3.Angle()
靠拢的话,有这样一个函数
public static Vector3 RotateTowards(Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta);
第一个参数是原向量A,第二个是目标向量B,第三个是角度,第四个设置成0.0f就可以了。
(当然,A,B都是单位向量的话。)
但是这个函数看起来是这样的意思,我并没有实践过。
可参考:http://docs.unity3d.com/ScriptReference/Vector3.RotateTowards.html
如果只是返回zero或者B的话,我只需要判断AB方向就可以了,何苦还要计算旋转呢?
判断方向很容易,可以使用
Vector3.Angle()
靠拢的话,有这样一个函数
public static Vector3 RotateTowards(Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta);
第一个参数是原向量A,第二个是目标向量B,第三个是角度,第四个设置成0.0f就可以了。
(当然,A,B都是单位向量的话。)
但是这个函数看起来是这样的意思,我并没有实践过。
可参考:http://docs.unity3d.com/ScriptReference/Vector3.RotateTowards.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |