2/3维向量叉乘意义&&判断二维平面点的相对位置&&向量法证明海伦公式

39 篇文章 3 订阅
19 篇文章 0 订阅

向量叉乘

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 =x1y2x2y1a ×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} (ab) ×(a+b) (ab) ×(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(pa)(pb)(bc)
在这里插入图片描述

证明:

hdu多校第八场C题几何判断

Clockwise or Counterclockwise
在这里插入图片描述

题目大意:

(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;
}
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数学小牛马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值