計算幾何

建中資訊讀書會

  • 225班
  • 電子計算機研習社_學術長
  • 綽號807
  • 資讀講師
  • 是不是該改這頁了

這我

蛤?這是甚麼

  • 幾何 的 演算法

計算幾何

座標與向量

物理教過瞜

國小教過了我可以不用講👍

直角座標

極座標

座標

struct Point{
    int x,y;
};
struct Point{
    int r,theta;
};

直角坐標

極座標

  • 大小
  • 方向
  • 物理課教過了

向量

       :

A點 到 B點 x,y變化量

向量

\overrightarrow{AB}
\overrightarrow{AB} = ( \Delta x, \Delta y)

         :

A點 到 B點 距離

向量長

| \overrightarrow{AB} |
| \overrightarrow{AB} | = \overline{AB} = \sqrt{ \Delta x ^ 2 + \Delta y ^ 2}
  • 加法
  • 減法
  • 內積
  • 外積

向量運算

向量加法

\overrightarrow{a} = (x_1,y_1)
\overrightarrow{a} + \overrightarrow{b} = ( x_1+x_2,y_1+y_2)
\overrightarrow{b} = (x_2,y_2)

x y 軸相互獨立

向量減法

\overrightarrow{a} = (x_1,y_1)
\overrightarrow{a} -\overrightarrow{b} = ( x_1-x_2,y_1-y_2)
\overrightarrow{b} = (x_2,y_2)

x y 軸相互獨立

向量內積

\overrightarrow{a} = (x_1,y_1)
\overrightarrow{a} \cdot \overrightarrow{b} = x_1 \times x_2+y_1 \times y_2
\overrightarrow{b} = (x_2,y_2)
\overrightarrow{a} \cdot \overrightarrow{b} = | \overrightarrow{a} | | \overrightarrow{b} | \cos{\theta}

夾角= 

\theta

向量外積

\overrightarrow{a} = (x_1,y_1)
\overrightarrow{a} \times\overrightarrow{b} = x_1 \times y_2-x_2 \times y_1
\overrightarrow{b} = (x_2,y_2)
\overrightarrow{a} \times \overrightarrow{b} = | \overrightarrow{a} | | \overrightarrow{b} | \sin{\theta}

夾角= 

\theta

向量外積

平行四邊形面積

| \overrightarrow{a} \times \overrightarrow{b} | =
\overrightarrow{a} \times \overrightarrow{b} = | \overrightarrow{a} | | \overrightarrow{b} | \sin{\theta}

向量外積

逆時針>0

順時針<0

struct

struct point{
    int x,y;
    inline point operator+(point p){return {x+p.x,y+p.y};} 
    inline point operator-(point p){return {x-p.x,y-p.y};}
    inline int operator^(point p){return x*p.y-y*p.x;} //cross
    inline int operator*(point p){return x*p.x+y*p.y;} //dot
    inline bool operator<(point p){return (x==p.x)?y<p.y:(x<p.x);} 
    friend ostream &operator<<(ostream &s,point &p){ //cin
        s<<p.x<<" "<<p.y;
        return s;
    }
    friend istream &operator>>(istream &s,point &p){ //cout
        s>>p.x>>p.y;
        return s;
    }
};
# PRESENTING CODE

有向面積

顯然室外機吧

你已經會了

area \triangle{OAB} = \frac{1}{2} | \overrightarrow{a} | | \overrightarrow{b} | \sin{\theta}
= \frac{1}{2} \overrightarrow{a} \times \overrightarrow{b}

這怎麼算

這怎麼算

area = | \frac{1}{2} \overrightarrow{p_n} \times \overrightarrow{p_1} + \sum_{i=2}^{n} \frac{1}{2} \overrightarrow{p_{i-1}} \times \overrightarrow{p_{i}} |

仔細想看看

這怎麼算

線段🍌

相交

  • 相交於一點
  • 不相交

線段關係

兩線段

任一點在另一線段上

沒有點在另一線段上

兩點皆不同邊

有兩點皆同邊

任一點在另一線段上

A
B
C
\overrightarrow{AB} \times \overrightarrow{AC} == 0 \rightarrow C 在 \overleftrightarrow{AB} 上

x_c 介於 X_b, X_a \land y_c 介於 y_a, y_b

任一點在另一線段上

任一點在另一線段上

\overrightarrow{AB} \times \overrightarrow{AC} 和 \overrightarrow{AB} \times \overrightarrow{AD} 一正一負
\overrightarrow{CD} \times \overrightarrow{CA} 和 \overrightarrow{CD} \times \overrightarrow{CB} 一正一負

A
B
A
B
C
D
C
D

線段香蕉

線段香蕉

#偷

#偷

#偷

提單

也用偷的這麼好

#偷

#偷

面積

#偷

🍌

#偷

凸包

學長有給code

真好

最喜歡iframe了

Computational Geometry

By 建中店自計算機研習社學術長807⁸⁰⁷