現在給你不共線的三個點a,b,c的座標,它們一定能組成乙個三角形,現在讓你判斷a,b,c是順時針給出的還是逆時針給出的?
如:圖1:順時針給出
圖2:逆時針給出
每行是一組測試資料,有6個整數x1,y1,x2,y2,x3,y3分別表示a,b,c三個點的橫縱座標。(座標值都在0到10000之間)
輸入0 0 0 0 0 0表示輸入結束
測試資料不超過10000組
如果這三個點是順時針給出的,請輸出1,逆時針給出則輸出0
0 0 1 1 1 3
0 1 1 0 0 0
0 0 0 0 0 0
0
1
題目給出三點座標(x1,y1)(x2,y2),(x3,y3)
給出的是二維座標系上的座標,我們可以將其看成三維空間座標系中xoy平面上的三角形
這樣,座標就是(x1,y1,0)(x2,y2,0),(x3,y3,0)
根據右手定則
如圖 opxof得到的m向量是向上的 而ofxop得到的叉乘結果 z軸方向是向下的
我們可以得到向量ab 和向量ac ab=(x2-x1,y2-y1,0) ac=(x3-x1,y3-y1,0)
ab叉乘ac 若叉乘得到的向量z軸座標為負數 則座標是順時針 反之座標是順時針
叉乘:| i j k |
|x2-x1 y2-y1 0 |
|x3-x1 y3-y1 0 |
得到的向量是
( (y2-y1)*0*i + (x3-x1)*0*j + (x2-x1)(y3-y1)*k - (x3-x1)(y2-y1)*k - (y3-y1)*0*i - (x2-x1)*0*j )
z軸座標是 (x2-x1)(y3-y1) - (x3-x1)(y2-y1)
則(x2-x1)(y3-y1) - (x3-x1)(y2-y1) 大於0 是順時針 反之逆時針
**:
#includeint main()
double flag;
flag=(x2-x1)*(y3-y1) - (y2-y1)*(x3-x1);
if(flag>0)
else}}
計算幾何初步 三點順序
三點順序 給出不共線的三個點a,b,c的座標,推斷a,b,c是順時針給出的還是逆時針給出的?利用向量叉積推斷是逆時針還是順時針。設向量p x1 y1 q x2 y2 則p,q向量叉積定義為 p q x1 y2 x2 y1,也就是 p q sin a 即p,q張成的平行四邊形的面積。a的取值不同,會帶...
計算幾何(一)三點順序
現有不共線的三點a b c的座標,它們一定能組成乙個三角形,判斷a b c是順時針給出的,還是逆時針給出的。每一行是一組測試資料,有6個整數x1,y1,x2,y2,x3,y3分別表示a b c三點的橫縱座標 座標值都在0到10000之間 輸入000000表示輸入結束,測試資料不超過10000組。三點...
計算幾何初步(面積以及三點順序)
設三角形三點為a x1,y1 b x2,y2 c x3,y3 三邊長為a,b,c,高為h,面積為s,p a b c 2 公式 s a h 2 b h 2 c h 2 s p p a p b p c 0.5 double area double x1,double y1,double x2,doubl...