向量入门

向量的定义

只有大小而没有方向的量称作 标量

既有大小又有方向的量称作 向量(Vector)

别和 std::vector<> 搞混了,此 vector 非彼 vector。

向量的表示

二维向量可在平面直角坐标系上表示,此时它的长度称为 模长

由于向量没有位置,我们可以直接将它的起点平移到原点,用终点此时的坐标表示它。

struct vec
{
int x, y;
};

向量的运算

  • 加法

    x 坐标相加, y 坐标相加。

    几何意义:

    $\overrightarrow{AB}$ 与 $\overrightarrow{AC}$ 的和 $\overrightarrow{AP}$ 是以 $\overrightarrow{AB}$ 与 $\overrightarrow{AC}$ 为相邻两边的平行四边形的对角线。

  • 减法

    x 坐标相减, y 坐标相减。

    几何意义:

    $\overrightarrow{AB}$ 与 $\overrightarrow{AC}$ 的差是 $\overrightarrow{CB}$ 。

  • 乘法/除法

    等比例放缩即可。

  • 点积

    向量 $A, B$ 的点积 $A \cdot B = |A||B| \cos \theta$,其中 $\theta$ 为两向量夹角。

    易得它的几何意义是 $A$ 在 $B$ 上的投影长度乘以 $B$ 的模长。

    在编程中有更简单的实现方式。

    x 坐标相乘, y 坐标相乘。

    求两个向量的夹角可以直接算点积,再调用库函数 acos 给把角度算出来。

  • 叉积

    向量 $A, B$ 的叉积 $A \times B = |A||B| \sin \theta$,其中 $\theta$ 为两向量夹角。

    几何意义: $A, B$ 形成的平行四边形面积,如果 $B$ 在 $A$ 顺时针方向该值为正,否则取负。

    编程中的实现方式:

    cross(A, B) = A.x * B.y - A.y * B.x

    推柿子太麻烦了,就先咕了。

向量在计算几何中的应用

  • 判点与直线的位置关系

    在直线上取两点,分别与这个点构成向量,算叉积,看正负,如果为负这个点就在直线左侧,否则在右侧,

  • 计算点到直线的距离

    一样的,线上取两点与这一点构成向量,算叉积,取绝对值得到平行四边形面积,除以底边长即线上两点的距离得到高即距离。

    推广到线段,只需要算算这个点的投影是否在线段上就行了,如果不行就取到两短点距离的更小值。

  • 咕咕咕

本文作者:aaaaaaqqqqqq

本文链接:https://www.cnblogs.com/aaaaaaqqqqqq/p/17976953

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   aaaaaaqqqqqq  阅读(21)  评论(0编辑  收藏  举报  
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.