向量叉乘
a = ( x 1 , y 1 ) b = ( x 2 , y 2 ) a=(x_1,y_1)\quad b=(x_2,y_2) a=(x1,y1)b=(x2,y2)
点乘: a → ⋅ b → \overrightarrow{a}·\overrightarrow{b} a⋅b
得到实数,属于向量之间的标量运算
叉乘: a → × b → \overrightarrow{a}\times\overrightarrow{b} a×b
二维叉乘的数值概念为以两个向量为边所围成的平行四边形面积
集合概念为
a
→
与
b
→
\overrightarrow{a}与\overrightarrow{b}
a与b的相对位置,右手定则得到
补充知识
向 量 叉 乘 : a → × b → = x 1 ⋅ y 2 − x 2 ⋅ y 1 两 向 量 共 线 : a → × b → = 0 向 量 叉 乘 不 满 足 交 换 律 : a → × b → = − b → × a → \begin{aligned} 向量叉乘:&\overrightarrow{a}\times\overrightarrow{b}=x_1·y_2-x_2·y_1\\ 两向量共线:&\overrightarrow{a}\times\overrightarrow{b}=0\\ 向量叉乘不满足交换律:&\overrightarrow{a}\times\overrightarrow{b}=-\overrightarrow{b}\times\overrightarrow{a} \end{aligned} 向量叉乘:两向量共线:向量叉乘不满足交换律:a×b=x1⋅y2−x2⋅y1a×b=0a×b=−b×a
例子::
(
a
−
b
)
→
×
(
a
+
b
)
→
=
2
×
(
a
→
×
b
→
)
证
明
:
(
a
−
b
)
→
×
(
a
+
b
)
→
=
a
→
×
a
→
+
a
→
×
b
→
−
b
→
×
a
→
−
b
→
×
b
→
=
2
×
(
a
→
×
b
→
)
几
何
意
义
:
平
行
四
边
形
对
角
线
为
边
的
平
行
四
边
形
面
积
为
原
平
行
四
边
形
面
积
的
两
倍
\begin{aligned} \overrightarrow{(a-b)}\times\overrightarrow{(a+b)}&=2\times(\overrightarrow{a}\times\overrightarrow{b})\\ 证明:\overrightarrow{(a-b)}\times\overrightarrow{(a+b)}&=\overrightarrow{a}\times\overrightarrow{a}+\overrightarrow{a}\times\overrightarrow{b}-\overrightarrow{b}\times\overrightarrow{a}-\overrightarrow{b}\times\overrightarrow{b}\\ &=2\times(\overrightarrow{a}\times\overrightarrow{b})\\ 几何意义&:平行四边形对角线为边的平行四边形面积为原平行四边形面积的两倍 \end{aligned}
(a−b)×(a+b)证明:(a−b)×(a+b)几何意义=2×(a×b)=a×a+a×b−b×a−b×b=2×(a×b):平行四边形对角线为边的平行四边形面积为原平行四边形面积的两倍
三维空间叉乘表示为两向量围成的平面
的法向量方向
海伦公式证明
三角形面积公式
△
2
=
p
(
p
−
a
)
(
p
−
b
)
(
b
−
c
)
\triangle^2=p(p-a)(p-b)(b-c)
△2=p(p−a)(p−b)(b−c)
证明:
hdu多校第八场C题几何判断
题目大意:
(0,0)
为圆心,任意给出三点判断三点顺序为顺时针还是逆时针
可用二维叉乘意义表示
判断两两点相对位置
- 正数输出逆时针
- 反之顺时针
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll t, x1, x2, x3, y1, y2, y3;
int main(){
scanf("%lld",&t);
while(t--){
scanf("%lld%lld%lld%lld%lld%lld", &x1, &y1, &x2, &y2, &x3, &y3);
if(x1 * y2 - x2 * y1 + x2 * y3 - x3 * y2 + x3 * y1 - x1 * y3>0)
printf("Counterclockwise\n");
else
printf("Clockwise\n");
}
return 0;
}