果園裡的樹

2021-09-27 06:45:19 字數 1034 閱讀 9399

——園裡的樹排列成矩陣。它們的x和y座標均是1~99的整數。輸入若干個三角形,依次統計每乙個三角形內部和邊界上共有多少棵果樹。

如圖所示:

樣例輸入

1.5 1.5 1.5 6.8 6.8 1.5

10.7 6.9 8.5 1.5 14.5 1.5

樣例輸出

1517

分析:此題用有向面積來解,首先看函式

double area(double x1, double y1, double x2, double y2, double x3, double y3)

它給出三角形p1(x1,y1)- p2(x1,y1)- p3(x2,y2)的有向面積的兩倍。如果△p1p2p3的三個頂點順時針排列,那麼有向面積為負;如果為逆時針排列,那麼有向面積為正;3點共線時,有向面積為0。如果感覺比較難記,可以記它的行列式形式:

____|x1 y1 1|

2s= |x2 y2 1| = x1y2 + x3y1 + x2y3 - x3y2 - x1y3 - x2y1

___ |x3 y3 1|

有了它,判斷就很簡單了:假設輸入三角形為abc,待判斷點為o,則o在三角形abc內部或邊界上,當且僅當s△abc=s△oab + s△obc + s△oac。**不在贅述,但需要注意的是:在判斷兩個浮點數是否相等時,請盡量判斷fabs(a-b)是否小於乙個事先給定的eps,如1e-9。如有可能,盡量避免浮點運算(思考一下為什麼不用海**式來計算) 。

實現**

#include#includedouble area(double x1, double y1, double x2, double y2, double x3, double y3)

int main(void)

} printf("%d\n", count);

} return 0;

}

果園裡的樹

果園裡的樹排列成矩陣。它們的x和y座標均是1 99的整數。輸入若干個三角形,依次統計每乙個三角形內部和邊界上共有多少棵樹。樣例輸入 1.5 1.5 1.5 6.8 6.8 1.5 10.7 6.9 8.5 1.5 14.5 1.5 樣例輸出 15 17這題是數學類題目,沒有什麼技巧 此題用三角形有向...

果園裡的樹(劉汝佳的小白5 4 3)詳解

果園裡的樹排列成矩陣。他們的x和y的座標均是1 99的整數。輸入若干個三角形,依次統計每個三角形內部和邊界上共有多少棵樹。輸入 1.5 1.5 1.5 6.8 6.8 1.5 10.7 6.9 8.5 1.5 14.5 1.5 此題用三角形有向面積來解,求有向面積2倍 的函式為 double are...

小白書84頁果園裡的書,叉積方向問題和三角形面積

這題題本來想用轉角發判斷點在多邊形內,後來發現給出的三角形的三個點的位置是不確定的,而轉角法規定點是按逆時針拍好序的,隨意放棄了這種做法,還是用三角形面積來做的,這裡既可以按照三角形面積和是否相等來做,先可以想想一下有向面積公式,用方向來判斷 判斷點p是否在三角形內部或者是邊界上的方法是 o點分出的...