c語言計算幾何系列題

2021-06-15 09:45:15 字數 505 閱讀 3446

1:判斷乙個點在一條直線的那一側。

假定給出的一條直線ab。a(x1,y1),b(x2,y2 ) ,另外給出乙個點c(x3,y3),判斷點在直線的那一側。只需判斷向量的數乘ab x ac=|ab|*|ac|sina。

所以判斷在那一側轉化為求sina與0的大小問題,在轉化為ab x ac與0的大小問題,則

ab =(ax=x2-x1;ay=y2-y1)

ac= ( bx=x3-x1;by=y3-y1;)

if(ax*by-ay*bx>0)  則sina>0, 0

else if(ax*by-ay*bx<0)  則sina<0,180

(ax*by-ay*bx==0)則sina=0,a=180||360°。點在zhi直線上(這個在c語言的計算幾何中很常用的)。

下面看以例題:nyoj68 三點順序 **:

#include #include int main()

return 0;

}

計算圓的周長(入門題 計算幾何)

如果告訴你圓的直徑,那麼計算圓的周長是非常簡單的。但是,這次不告訴你圓的直徑。現給你圓周上三個點的座標,請你計算圓的周長。輸入包含多組測試資料。每組輸入包含6個實數x1,y1,x2,y2,x3,y3,表示圓周上三個點的座標。圓的直徑不會超過1000000。對於每組輸入,輸出圓的周長,結果保留2位小數...

用C語言解「計算工資」題

某公司員工的工資計算方法如下 一周內工作時間不超過40小時,按正常工作時間計酬 超出40小時的工作時間部分,按正常工作時間報酬的1.5倍計酬。員工按進公司時間分為新職工和老職工,進公司不少於5年的員工為老職工,5年以下的為新職工。新職工的正常工資為30元 小時,老職工的正常工資為50元 小時。請按該...

51nod1264(計算幾何入門題)

傳送門 51nod1264 題意 給你兩條線段,判斷是否相交 數學渣渣看了一下午各種找公式才明白 下面寫一下理解 判斷兩個線段相交與否。可以看成直線是否與線段相交 根據高數所學,向量的叉乘積,可以利用右手法則來判斷結果的方向。那麼如果兩種情況的方向乙個上,乙個下,那麼自然也就是不在直線的同側,那麼就...