初学计算几何(一)

您所在的位置:网站首页 计算两个向量的点积 初学计算几何(一)

初学计算几何(一)

2024-07-07 21:10| 来源: 网络整理| 查看: 265

前言

计算几何应该是一个比较复杂的东西吧,它的应用十分广泛。为此,我花了很长的时间来学习计算几何。

点与向量 点

点应该还算比较简单吧!对于平面上的一个坐标为 ( x , y ) (x,y) (x,y)的点,我们可以用 P ( x , y ) P(x,y) P(x,y)来表示它。

向量

向量表示的是一个有大小和方向的量,在平面坐标系下它与点一样也用两个数来表示。这两个数的实际含义是将这个向量的起点移至原点后终点的坐标。通常,我们用 v ⃗ \vec v v 来表示一个向量,用 ∣ v ⃗ ∣ |\vec v| ∣v ∣来表示向量 v ⃗ \vec v v 的长度。

点与向量的基本定义与运算

虽然点与向量十分相像,但是它们在概念上还是有许多不同的。

下面是它们的基本定义与运算。

struct Point//一个结构体用来存储一个点 { double x,y;//分别存储点的两个坐标 Point(double x=0,double y=0):x(x),y(y){ }//构造函数 }; typedef Point Vector;//向量在代码中其实与点差不多,因此可以直接typedef一下 inline Vector operator + (Vector A,Vector B) { return Vector(A.x+B.x,A.y+B.y);}//向量+向量=向量 inline Vector operator - (Point A,Point B) { return Vector(A.x-B.x,A.y-B.y);}//点-点=向量 inline Vector operator * (Vector A,double x) { return Vector(A.x*x,A.y*x);}//向量*一个数=向量 inline Vector operator / (Vector A,double x) { return Vector(A.x/x,A.y/x);}//向量/一个数=向量 点积

下面,先来介绍一下向量的点积。

点积的计算公式及其扩展

v ⃗ ( X 1 , Y 1 ) ⋅ u ⃗ ( X 2 , Y 2 ) = X 1 X 2 + Y 1 Y 2 \vec v(X_1,Y_1)·\vec u(X_2,Y_2)=X_1X_2+Y_1Y_2 v (X1​,Y1​)⋅u (X2​,Y2​)=X1​X2​+Y1​Y2​

对于两个向量 v ⃗ \vec v v 和



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3