直線與直線相交
給出兩條直線(每條直線給出其上兩個點),要求判斷出這兩條直線的關係:平行,同線或相交。如果相交還要求出交點座標。
第一行乙個數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...