【計算幾何】向量表示
計算幾何中的向量表示
二維圖中,點與向量的表示:
struct point //點座標
{
double x;
double y;
};
struct V //兩點式
{
point start;
point end;
};
V change(V a) //兩點式起點化為 0,0
{
V b;
b.start.x = 0;
b.start.y = 0;
b.end.x = a.end.x - a.start.x;
b.end.y = a.end.y - a.start.y;
return b;
}
向量的運演算法:
1.向量加減
V add(V a,V b)
{
V aa = change(a);
V bb = change(b);
V c;
c.start.x = 0;
c.start.y = 0;
c.end.x = aa.end.x+bb.end.x;
c.end.y = aa.end.y+bb.end.y;
return c;
}
V dec(V a,V b)
{
V aa = change(a);
V bb = change(b);
V c;
c.start.x = 0;
c.start.y = 0;
c.end.x = aa.end.x-bb.end.x;
c.end.y = aa.end.y-bb.end.y;
return c;
}
2.向量點積
可以通過向量點積計算向量夾角
a•b = |a|*|b|*cos(∠)
a•b = x1*x2 + y1*y2;
double dot_mul(V a,V b)
{
double result;
V aa = change(a);
V bb = change(b);
result = aa.end.x*bb.end.x + aa.end.y*bb.end.y;
return result;
}
3.向量叉積
叉積可以計算三角形面積
a×b > 0 , a 在 b的順時針方向
a×b < 0 , a 在 b的逆時針方向
a×b = 0 , a 在 b同方向或反方向
a×b = x1*y2 - x2*y1;
double cross_mul(V a,V b)
{
double result;
V aa = change(a);
V bb = change(b);
result = aa.end.x*bb.end.y - aa.end.y*bb.end.x;
return result;
}
相關文章
- 計算幾何_向量的實現
- 計算幾何
- 計算幾何:模板
- 計算幾何模板
- [筆記] 計算幾何筆記
- 【總結】計算幾何模板
- 二維計算幾何模板
- 【計算幾何】線段相交
- 三維計算幾何模板
- Something about 計算幾何
- 計算幾何 —— 二維幾何基礎 —— 距離度量方法
- 邊緣計算、霧計算、雲端計算區別幾何?
- 【學習筆記】計算幾何筆記
- 【計算幾何】多邊形交集
- 計算幾何——平面最近點對
- 微分幾何學習(一)(向量函式)函式
- POJ - 1556 【計算幾何 + 最短路】
- An Easy Problem?! POJ 2826 計算幾何
- 計算幾何常用的函式/方法函式
- BNUOJ 12887 isumi(計算幾何+最大流)
- SGU 124 Broken line(計算幾何)
- 【計算幾何】Triangles HUST 1607
- 【計算幾何】多邊形點集排序排序
- 平方差公式的幾何表示公式
- 特徵值與特徵向量的幾何含義(轉)特徵
- C++計算幾何演算法大全C++演算法
- POJ 2991 Crane(線段樹+計算幾何)
- 【計算幾何】點在多邊形內部
- POJ 1556 The Doors(Dijkstra+計算幾何)
- DX12龍書 01 - 向量在幾何學和數學中的表示以及運算定義
- 二維幾何常用運算
- SGU 120 SGU 228 Archipelago(計算幾何)Go
- 計算機視覺—圖片幾何變換(2)計算機視覺
- 【計算幾何】求線段相交交點座標
- BZOJ 1027 合金 計算幾何,Floyd判環
- CG_Hadoop:基於MapReduce的計算幾何Hadoop
- 向量點積計算javaJava
- 09:向量點積計算