計算幾何練習4

2021-08-03 00:03:27 字數 1271 閱讀 1668

直線與直線相交

給出兩條直線(每條直線給出其上兩個點),要求判斷出這兩條直線的關係:平行,同線或相交。如果相交還要求出交點座標。

第一行乙個數t,表示t組資料;

每組資料輸入一行,8個數,分別表示ax,ay,bx,by,cx,cy,dx,dy,四個點的橫縱座標,其中前兩個點表示一條直線,後兩個點表示另一條直線。

對於每組資料輸出一行;

如果平行輸出「none」;如果共線輸出「line」;如果相交輸出交點的橫縱座標(精確到小數點後兩位)。

5

0 0 4 4 0 4 4 0

5 0 7 6 1 0 2 3

5 0 7 6 3 -6 4 -3

2 0 2 27 1 5 18 5

0 3 4 0 1 2 2 5

2.00 2.00

none

line

2.00 5.00

1.07 2.20

t<=10,000

-10000<=所有點座標<=10000

這題是一道相對來說比較簡單的計算幾何題目,有很多種方法,這裡只介紹一種。直線與直線的位置關係只有三種:相交、平行、共線。我們第乙個想到的就是計算直線的解析式來判斷直線的位置關係。解析式分兩步,斜率k和b。斜率的計算只需用斜率公式計算,而b的計算就把某個點的座標和斜率帶入即可。

ac**:

#include

#include

using

namespace std;

void

work

()else

}else

return;}

if(x3==x4)

if(y1==y2)

else

return;}

} k1=(

double

)((y2-y1)/((x2-x1)*

1.0));

k2=(

double

)((y4-y3)/((x4-x3)*

1.0));

b1=(

double

)(y1-k1*x1);

b2=(

double

)(y3-k2*x3);

if((y2-y1)*(x4-x3)==(x2-x1)*(y4-y3))

else

}else

}int

main

()return0;

}

計算幾何練習1

結構體 編寫平面上整點point結構體的預設構造 一般構造 拷貝構造,並過載 第一行乙個n,表示上半平面上整點個數。以下n行,每行兩個整數,用空格隔開,表示乙個點的x座標及y座標。輸出n行,按排序好的先後順序每行輸出乙個點的兩個整數,用空格隔開。12 44 33 87 32 481 63 65 65...

練習4 計算 calc

include include include include include includeusing namespace std define l 101 int tops 0 指標指向空白處 再運算 int topn 0 char sym l 符號棧 int num l 數字棧 char b ...

計算幾何與計算幾何與

博主這裡曾經學過計算幾何 下文簡稱jj 所以沒有證明或者說明某些演算法,不適合初學者食用 用一道例題及黃學長的 來理解 黃學長 include include include include include include include include include include define...