向量的叉乘
来源:互联网 发布:c语言无符号整型范围 编辑:程序博客网 时间:2024/04/28 23:24
叉乘,其实首先在笛卡而空间中认识它,假设C = cross( A, B ), 而A = ( x0 , y0, z0 ), B = ( x1, y1, z1 ),那么A,B的叉乘就是等于C = ( y0 * z1 - y1 * z0, x1 * z0 - x0 * z1, x0 * y1 - y0 * x1 ),我们要清楚,此时的叉乘是独立于任何坐标系的.
为什么呢?我们把坐标系表示成( E, D, U, R ), E表示原点,X,Y,Z分别表示坐标系的轴,约定把右手规则施加给这个坐标系,那么
A = x0D + y0U + z0R, B = x1D + y1U + z1R
则C = ( y0 * z1 - y1 * z0)D + (x1 * z0 - x0 * z1)U+ ( x0 * y1 - y0 * x1)R,
又,我们把把坐标系表示成( E, R, U, D ), 由于我们把左手定则施加给了( E, X, Y, Z ),那么它必然是基于右手定则的坐标系.那么
A = z0R + x0U+ y0D , B = z1R + x1U + y1D;
则C = ( x0 * y1 - y0 * x1)R + ( x1 * z0 - x0 * z1)U + ( y0 * z1 - y1 * z0)D;
有没有发现左手坐标系与右手坐标系的叉乘后的C是相等的,呵呵,从这里我们可以确定,抛开具体的坐标系,叉乘的结果是相等的.
但是如果我们把A,B具体化,在坐标系( E, D, U, R )中,假设:
A = D =( 1, 0, 0 ), B = U = ( 0, 1, 0 ), R = ( 0, 0, 1 )那么
C = ( 0 * 0 - 1 * 0)D + ( 1 * 0 - 0 * 0 )U+ ( 1 * 1 - 0 * 0)R = ( 0, 0, 1 ) = R
cross( D, U ) = R;
而在坐标系( E, R, U, D ),中,可得
A = R =( 0, 0, 1 ), B = U = ( 0, 1, 0 ), D = ( 1, 0, 0 )那么
C = ( 0 * 1 - 0 * 0)R + ( 1 * 0 - 1 * 0)U + ( 0 *0 - 1 * 1)D = ( -1, 0, 0 ) = -D
cross( R, U ) = -D;
大家可以看到,右手坐标系的叉乘与左手坐标系的叉乘是完全不一样的, 也就是说当我们提到叉乘时,我们一般认为它独立于任何坐标系,而只有当具体到某个类型的坐标系,我们才关心,叉乘后的结果是指向哪个方向的( 右手顶则适用~~ )
另外,我们可以简单的认为,在坐标系( E, U0, U1, U2 )中,如果
cross( U0, U1 ) = U2,属于右手坐标系
cross( U0, U1 ) = -U2,属于左手坐标系
最后需要注意的是,在DX中的方法D3DXVec3Cross,实际上是对笛卡而空间的向量做叉乘,也就是说你不用去关心叉乘后向量C的方向了,它是Cross( A, B ) = C,而不会是Cross( A, B ) = -C,因为这个方法并没有关心具体坐标系,而是单纯的使用C = ( y0 * z1 - y1 * z0, x1 * z0 - x0 * z1, x0 * y1 - y0 * x1 ),可以自己去DX中验证.
Enjoy!!
- 向量的叉乘
- 向量的点乘与叉乘
- 向量的点乘与叉乘
- 向量的点乘和叉乘
- 向量的点乘与叉乘
- 向量的点乘与叉乘
- 向量的点乘和叉乘
- 向量的点乘和叉乘
- 向量的点乘与叉乘
- 向量的点乘与叉乘
- 向量的点乘和叉乘
- 向量的点乘与叉乘
- 向量的点乘和叉乘
- 向量的点乘和叉乘
- 向量叉乘的推导
- 向量 - 向量叉乘 向量点乘
- 向量的点乘与叉乘的几何意义
- 向量的点乘与叉乘的几何意义
- 优化新思路:SEO查重算法
- Tucia - online photo editing service gives you some star treatment on the cheap
- 初学java第一步——JDK环境变量配置
- 软件工程中使用到的文档
- Threaded Red-Black Tree 线索红黑树
- 向量的叉乘
- 事件
- cmd命令For分割字符串
- C语言中的面向对象(1)-类模拟和多态,继承(转载)
- C语言中的面向对象(2)-C语言的多态实现(转载)
- 十年总结(四):在北京的第一份工作和第一个项目
- Spring 的 Hessian 简单使用
- installshield express for delphi7
- Javascript里延迟函数