unity3d 向量旋转场的旋转度理论及其应用pdf 有资源的分享一下哈!

求某一向量与Vector3.forward所成的角度,一般用于求一个物体的绕Y轴的旋转角度
求某一向量与Vector3.Forward所称的角度——一般用于求一个物体的绕Y轴的旋转角度
&/summary&
&returns&&/returns&
& & public float
AngleBetweenForward2Vector(Vector3 vectorAim)
& vectorAim.y = 0;
& float angleBetweenForward2Vector = 0;
& if (vectorAim.x&0)
angleBetweenForward2Vector = Vector3.Angle(Vector3.forward,
vectorAim);
angleBetweenForward2Vector = 360 - Vector3.Angle(Vector3.forward,
vectorAim);
& return angleBetweenForward2Vect
用法:float
angle=AngleBetweenForward2Vector(vectorStart2End);
&&transform.localEulerAngles =
new Vector3(0,&angle, 0);
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。一个向量围绕X轴旋转矩阵的问题一个向量a = [1,1,1] 围绕X轴旋转45度 应该是 a*P = [1,1,1]*[1 0 00 cos45 sin450 -sin45 cos45 ] 结果等于[1,0,√2]问题是我得到了这个结果然后我想再逆时针旋转45度就应该得到 [1,1,1]我用 a' * p' = [_百度作业帮
一个向量围绕X轴旋转矩阵的问题一个向量a = [1,1,1] 围绕X轴旋转45度 应该是 a*P = [1,1,1]*[1 0 00 cos45 sin450 -sin45 cos45 ] 结果等于[1,0,√2]问题是我得到了这个结果然后我想再逆时针旋转45度就应该得到 [1,1,1]我用 a' * p' = [1,0,√2] * [1 0 00 -cos45 -sin450 sin45 -cos45 ] 得到的结果却是[1,1,-1]请问我哪一步错了,
在求逆变换的时候,逆时针旋转45度就是顺时针旋转-45度,所以很容易写出逆矩阵(如果你知道正交矩阵的概念的话可以直接取转置)你的错误在于"cos(-45)=-cos45"这步,注意cos是偶函数
P'错了,P是正交阵,它的逆是它的转置,即P^-1=P^T=[1,0,0;0,cos45,-sin45;0,sin45,cos45].你再验证一下。向量场的旋转度理论及其应用
开&&&&&&本:
页&&&&&&数:
字&&&&&&数:
I&&S&&B&&N:
售&&&&&&价:10.00元
品&&&&&&相:
运&&&&&&费:天津市塘沽区
挂号印刷品:4.00元
上书时间:
购买数量:
(库存1件)
商品分类:
详细描述:
暂无详细描述。
您可能感兴趣的商品
Copyright(C)
孔夫子旧书网
京ICP证041501号
海淀分局备案编号
购物车共有0件商品,合计:0.00元
商品已成功添加到收藏夹!二维和三维向量的旋转
二维向量旋转:
二维向量旋转代码:
#include&iostream& &
#include&stdio.h& &
#include&math.h& &
#define N 1000 &
#define eps 1e-8 &
#define PI acos(-1.0) &
struct point{double x,y;}p[N]; &
//点q绕(x0,y0) 逆时针旋转ang &
point rotate(point q,double x0,double y0,double ang) &
& & double cosa=cos(ang); &
& & double sina=sin(ang); &
& & double dx=q.x-x0; &
& & double dy=q.y-y0; &
& & ans.x=cosa*dx-sina*dy+x0; &
& & ans.y=sina*dx+cosa*dy+y0; &
int main() &
& & while(scanf(&%d&,&n)!=EOF) &
& & & & point s={1,1}; &
& & & & for(i=0;i&n;i++)scanf(&%lf%lf&,&p[i].x,&p[i].y); &
& & & & for(i=0;i&n;i++)p[i]=rotate(p[i],s.x,s.y,PI/4.0); &
& & & & for(i=0;i&n;i++)printf(&%.2lf %.2lf\n&,p[i].x,p[i].y); &
& & return 0; &
1.00 1.00&
2.41 1.00&
2.41 2.41&
1.00 2.41&
三维向量旋转:
向量绕任意轴OS(x, y, z)旋转的矩阵:
=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢x2+(y2+z2)cos&x2+y2+z2yx(1&cos&)x2+y2+z2+zsin&x2+y2+z2&&&&&&&&&&&zx(1&cos&)x2+y2+z2&ysin&x2+y2+z2&&&&&&&&&&&xy(1&cos&)x2+y2+z2&zsin&x2+y2+z2&&&&&&&&&&&y2+(z2+x2)cos&x2+y2+z2zy(1&cos&)x2+y2+z2+xsin&x2+y2+z2&&&&&&&&&&&xz(1&cos&)x2+y2+z2+ysin&x2+y2+z2&&&&&&&&&&&yz(1&cos&)x2+y2+z2&xsin&x2+y2+z2&&&&&&&&&&&z2+(x2+y2)cos&x2+y2+z2⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
三维向量旋转代码:
#include&iostream& &
#include&cstdio& &
#include&math.h& &
#include&string.h& &
#define PI acos(-1.0) &
#define eps 1e-8 &
#define N 1000 &
struct point3{double x,y,z;}p[N]; &
//求三维空间上一点q绕 向量(x0,y0,z0)正向旋转ang 弧度的点,向量起点在原点 &
point3 rotate3(point3 q,double x0,double y0,double z0,double ang) &
& & double x2=x0*x0; &
& & double y2=y0*y0; &
& & double z2=z0*z0; &
& & double d2=x2+y2+z2; &
& & double d=sqrt(d2); &
& & double sina=sin(ang); &
& & double cosa=cos(ang); &
& & point3 &
& & ans.x=(x2+(y2+z2)*cosa)/d2*q.x &
& & & & + (x0*y0*(1-cosa)/d2 - z0*sina/d )* q.y &
& & & & + (x0*z0*(1-cosa)/d2+y0*sina/d)*q.z; &
& & ans.y=(y0*x0*(1-cosa)/d2+z0*sina/d)*q.x &&
& & & & + (y2+(x2+z2)*cosa)/d2* q.y &
& & & & + (y0*z0*(1-cosa)/d2-x0*sina/d)*q.z; &
& & ans.z=(z0*x0*(1-cosa)/d2 - y0*sina/d)*q.x &
& & & & + (z0*y0*(1-cosa)/d2+x0*sina/d)*q.y &&
& & & & + (z2+(x2+y2)*cosa)/d2*q.z; &
int main() &
#ifndef Online_Judge &
& & freopen(&in.txt&,&r&,stdin); &
& & while(scanf(&%d&,&n)!=EOF) &
& & & & for(i=0;i&n;i++)scanf(&%lf%lf%lf&,&p[i].x,&p[i].y,&p[i].z); &
& & & & double x0=0,y0=0,z0=1; &
& & & & double ang=PI/4.0; &
& & & & for(i=0;i&n;i++)p[i]=rotate3(p[i],x0,y0,z0,ang); &
& & & & for(i=0;i&n;i++)printf(&%.8lf %.8lf %.8lf\n&,p[i].x,p[i].y,p[i].z); &
& & return 0; &
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。价格(元)
装订:平装
开本:16开
装订:平装
开本:小32开
版次:1版1印
装订:平装
开本:16开
装订:平装
开本:32开
装订:平装
开本:19cm
装订:平装
开本:32开
装订:平装
开本:19cm
装订:平装
开本:大32开
版次:一版一次
装订:平装
装订:平装
开本:16开
装订:平装
装订:平装
装订:平装
开本:32开
装订:平装
装订:平装
开本:32开
版次:一版一印
装订:平装
开本:32开
装订:其它
装订:平装
开本:32开
装订:硬精装
开本:32开
装订:平装
开本:32开
装订:其它
开本:32开
装订:其它
开本:大32开
装订:硬精装
开本:16开
装订:平装
开本:大32开
向量及其应用到页

我要回帖

更多关于 unity3d 向量旋转 的文章

 

随机推荐