計算幾何之求兩線段的交點

2021-10-19 11:52:12 字數 1018 閱讀 7431

當兩條線段有交點的時候,交點座標可以用叉乘來求。

思路就是連線線段的端點,構造向量,從而構造出相似三角形,然後求出交點在一條線段上的位置(用比例t來表示),然後再加到線段端點上就可以了。

題目:cgl_2_c

ac**:

#include #include#include using namespace std;

#define counter_clockwise -1 //逆時針

#define clockwise 1 //順時針

#define online_back -2 //p2 p0 p1依次排列在一條直線上

#define online_front 2 //p0 p1 p2依次排列在一條直線上

#define eps 1e-8

class point

point(double x, double y)

double operator^(const point &p) const //叉乘

double operator*(const point &p) const //點乘

計算幾何之求兩條線段的交點

這個圖是從知乎上儲存下來的 其實主要是利用了三角形的相似 如下 兩點式直線公式 x x1 x2 x1 y y1 y2 y1 x y2 y1 y x1 x2 x1 y1 y2 y1 x2 x1 0 a y2 y1,b x1 x2,c x1 y1 y2 y1 x2 x1 x,y d2 d1 d2 x3,...

求兩直線交點 判斷兩線段相交 求線段交點

點的結構 struct point point double x,double y 線段的結構 struct egde egde point a,point b 建立的邊,存在的線段求兩直線 線段 交點 void getpoint point p1,point p2,point p3 point p...

計算幾何 二維 兩線段的交點座標

給出點a1,a2,b1,b2的座標,分別構成線段a1a2,線段b1b2,求兩線段的交點座標 線段a1a2,b1b2如下圖所示,並建立輔助線 於 挑戰程式設計競賽2 step1 先求出b1點到直線a1a2的距離d1,和b2點到直線a1a2的距離d2 可根據向量法求出 a1b1為向量,其它一樣 step...