判斷乙個多邊形是否是凸多邊形

2021-08-22 16:15:29 字數 578 閱讀 3740

乙個很簡單的問題看了好久,但就是提交不過,也看不出是哪齣了問題

問題為:判斷乙個多邊形是否是凸多邊形

我的思路是這樣的:

建立x,y這兩個陣列用來存放座標,計算兩個向量,然後讓計算它們的叉積,如果叉積小於零,說明後乙個向量在前乙個向量的右側,即順時針方向,只要有乙個是這樣的情況,則不符合條件。然後就是叉積大於零,符合條件,計數加一。等於零共線,直接跳過。最後,要是計數大於3,就說明是凸邊形,因為三角形肯定是凸邊形。

我覺得思路沒啥問題呀,想不通

以下**:

#include#include using namespace std;

double eps = 1e-10;

int main()

double x[10000],y[10000];

for(int i=1;i<=n;i++)

if(n==1||n==2)

double x[10000],y[10000];

for(int i=1;i<=n;i++)

if(n==1||n==2)

} }

}

驗證多邊形是否為凸多邊形

驗證多邊形是否為凸多邊形 2108 shape of hdu include define debug 0 int crossmulti int x0,int y0,int x1,int y1,int x2,int y2 int main int n,i int f x,f y 第1個點 int s...

Matlab生成多邊形,並且判斷多邊形是否相交

隨機生成若干個點,就可以生成多邊形。嚴格來說,是要判斷產生的點是否共線的,但是這樣概率太低,所以我就沒有判斷。生成的點不能直接連起來,因為點的順序有可能是錯亂的,所以首先要進行順序判斷,方法是計算角度。找到平面內某一點,計算多邊形每乙個點到這個點連線和x軸的夾角,對這個夾角進行排序,就可以得到點的順...

劃分凸多邊形

時間限制 800ms 記憶體限制 65535k 提交次數 0 通過次數 0 題型 程式設計題 語言 g gcc vc 問題描述 乙個正凸n邊形,可以用n 3條互不相交的對角線將正n邊形分成n 2個三角形。現在要求讀入n邊形的n n 20 輸出不同劃分方法的總數 要求解的是劃分方法數,而不需要輸出各種...