va是一个向量,vb也是一个向量,在二维空间里,两个向量表示为:
va={va1, va2} vb={vb1, vb2}, 其中va1, vb1为x分量, va2,vb2为y分量
下面这段代码开始很明白
cc = va1 * vb2 - va2 * vb1; //Cross product计算叉积
maga = sqrt(va1*va1 + va2*va2); //计算va的长度
na1 = va1 / maga; //单位化x分量
na2 = va2 / maga; //单位化y分量
bb = vb1 * na1 + vb2 * na2; //Dot product计算点积,也就是vb向量在va上的投影了
dthet = atan2(abs(cc),bb^2); //这句话卡住了,不知道是在算什么,atan2(a,b)函数的说明是计算arctan(a/b),如果b=0.0,程序会处理分母为0的情况,那也就是算叉积绝对值除以投影的平方了?什么意思呢?不知道有谁有相关方面的几何或者物理的背景知识啊,
不知道问题讲清楚了没有,谢谢!
va={va1, va2} vb={vb1, vb2}, 其中va1, vb1为x分量, va2,vb2为y分量
下面这段代码开始很明白
cc = va1 * vb2 - va2 * vb1; //Cross product计算叉积
maga = sqrt(va1*va1 + va2*va2); //计算va的长度
na1 = va1 / maga; //单位化x分量
na2 = va2 / maga; //单位化y分量
bb = vb1 * na1 + vb2 * na2; //Dot product计算点积,也就是vb向量在va上的投影了
dthet = atan2(abs(cc),bb^2); //这句话卡住了,不知道是在算什么,atan2(a,b)函数的说明是计算arctan(a/b),如果b=0.0,程序会处理分母为0的情况,那也就是算叉积绝对值除以投影的平方了?什么意思呢?不知道有谁有相关方面的几何或者物理的背景知识啊,
不知道问题讲清楚了没有,谢谢!
这样可以把大家的讨论集中起来,不至于各自为政。
同样的问题的类似讨论,还在下面的两个帖子当中:
http://community.csdn.net/Expert/topic/3969/3969010.xml?temp=.3691522
http://community.csdn.net/Expert/topic/3969/3969004.xml?temp=.1492273
atan2(bb,sqrt(va1*va1 + va2*va2)*sqrt(vb1*vb1 + vb2*vb2));下式应该是正确的:
cc = va1 * vb2 - va2 * vb1; //Cross product计算叉积
= atan2(abs(va1 * vb2 - va2 * vb1), (vb1 * na1 + vb2 * na2) * (vb1 * na1 + vb2 * na2))
打了半天草稿也没看出来
一会儿拿笔画画
|va||vb| sin Cita
---------------------------------
|vb||vb| cos Cita * cosCitacita就是两个向量之间的夹角,看不出来物理意义何在