1樓:
找到4個向量,兩兩互相垂直,用向量點積判斷。
也可以用兩組互相平行,向量成比例,加上一組互相垂直。
2樓:匿名使用者
設四個點d1(x1, y1), d2(x2, y2), d3(x3, y3), d4(x4, y4)
然後利用勾股定理:
if((x1-x4)^2+(y1-y4)^2+(x2-x1)^2+(y2-y1)^2 ==
(x3-x2)^2+(y3-y2)^2+(x3-x4)^2+(y3-y4)^2)
printf("是矩形\n");
3樓:de番茄炒西紅柿
判斷四個點是否重重,計算中點的位置,然後判斷中點到四個點的距離是否相等
4樓:康
你好,步驟如下:
計算4個點的重心,然後依次對4個座標排序,排序方式最簡單的就是按每個點與重心的向量角進行點排序。
排序好後依次計算每相鄰三個點構成的兩條直線是否垂直,也是求向量夾角。
4個夾角都在90±5°內就是矩形了,精度你可以自己把握。
5樓:榖樑躍
**:#include
typedef struct point;
int is_rectangle(point a,point b,point c,point d)elseelse if(ac_x == 0)else if((ac_y/ac_x)*(ab_y/ab_x) != -1)else{
printf("無法構成矩形\n");
return 0;
執行結果:
6樓:匿名使用者
當我們面對問題的時候首先不能頭大,回顧初中所學的知識,如何判斷一個四邊形是否是正方形:
正方形判定定理 :
1:有一個角是直角的菱形是正方形 2:一組鄰邊相等的矩形是正方形 3:對角線互相垂直的矩形是正方形
4:四邊相等,有一個角是直角的四邊形是正方形(先證菱形)
5:一組鄰邊相等且有一個角是直角的平行四邊形是正方形(先證菱形)
6:四邊均相等,對角線互相垂直平分且相等的平面四邊形(先證菱形)
以上紅色文字不用閱讀 :)
為了使本篇文章不成為數學證明題,以上證明過程略.
當你看完紅字後會感覺一頭霧水,這裡直接給出程式中判定較為簡單的方法:
鄰邊相等且對角線相等的四邊形是正方形.
我們將由四個座標點組成的線段進行排序;,預設最長的兩條線為對角線,剩下的為四邊形的四條邊;
因為這六條線是有序的,所以將前兩條線(相鄰邊)和後兩條線(對角線)進行比較;
滿足"鄰邊相等且對角線相等"就可以判定這四個點能否構成正方形了;
分析完問題,理清脈絡後就會發現問題並不難;接下來進行在程式設計上的抽象:
給定的是座標;所以用一個長度為2的一維陣列進行儲存;
int p1,int p2,int p3,int p4;
為了區分四個點;所以用一個二維陣列point [n ] [ m] 來儲存上面的一維陣列;
其中n表示是四個點中的哪一個點,m中下標為0表示相應點中的x座標;下標為1表示相應點中的y座標;
所以這個二維陣列長度應該為point [4 ] [ 2];
int p=,,,};
別忘了再建立一個陣列用來儲存線段的長度;
int len=new int[6];
接下來就是最重要的一步;進行各個線段長度的計算;
for(int i=0;i<=3;i++)
}然後將這個陣列排序;並且分別比較相鄰邊和對角線長度是否相等就行了,
注意避免座標重疊問題,應該保證對角線長度大於邊的長度.
最後附上源**
public class is_square ,,,};
int cnt=0;
int len=new int[6];
for(int i=0;i<=3;i++)
}//陣列排序 最長的是對角線
arrays.sort(len);
//相鄰兩邊相等,對角線相等的四邊形是正方形;
>len[1])
return false;}}
c++程式設計!已知矩形,判斷輸入的點是否包含在該矩形內。
7樓:清晨復日暮
給你個c語言~
你自己改改吧~
#include
int a[2]=;
int b[2]=;
int c[1000];
int i,j,x,y;
int judge(int h,int k)void main()
for(j=0;j
while(1);}
8樓:匿名使用者
#include
using namespace std;
int judge(int x,int y)else
}int main()
{int n;
cin>>n;
while(n--)
{int x,y;
cin>>x>>y;
if(judge(x,y)==1)
{cout<<"in"<
cad中怎麼對調xy座標?因為測量座標與cad座標是相反的
測量座標復系中有一p點,則其坐制標 y,x 為了更好理解用 a,b 表示,那麼cad數學座標系中同一p點,其座標仍然為 a,b 也就是 y,x 在數學座標系中表示為 x,y 測量座標中的y和數學座標中的y是不同兩個座標系的定義,也就是說此y非彼y,此x非彼x,y x,x y 所以說只是數值是反的。本...
如何用向量的座標來判斷兩個向量是否共線
設a 抄x1,y1 b x2,y2 如果襲x2 x1 baiy2 y1,也就是x1y2 x2y1,則共線。分四種情 du況 橫座標都為0的兩zhi個向量共線。縱坐dao標都為0的倆個向量共線。0向量 橫 縱座標都是0 與任何向量共線。橫座標之比等於縱座標之比的兩個向量共線 其中,比值為正則同向,比值...
c語言輸入三角形三邊abc判斷是否能構成三角形
include void main else printf n輸入錯誤!include int main include include int main void while a b 0 a c 0 b c 0 if fabs a b c else printf no return 0 inclu...