c 判斷一點在不在點組成的矩形內部

時間 2021-05-14 08:35:05

1樓:匿名使用者

因為你這個題目說的是矩形,你只有簡單判斷一下座標就行了。

c++判斷一點在不在四個點組成的四邊形內部演算法

2樓:匿名使用者

struct point //點

;inline int min(int x, int y)inline int max(int x, int y)// 判斷點是否在四邊形內部

// point pcur 指定的當前點

// point plefttop(左上), point pleftbelow(左下), point prightbelow(右下), point prighttop(右上), 四邊形的四個點

bool init(point pcur, point plefttop, point pleftbelow, point prightbelow, point prighttop)

;int ncross = 0;

for (int i = 0; i < ncount; i++)// 單方向交點為奇數,點在多邊形之內

// 單方向交點為偶數,點在多邊形之外

return (ncross % 2 == 1);

}參考網上方法,只是把註釋寫了寫

c++程式設計!已知矩形,判斷輸入的點是否包含在該矩形內。

3樓:自由之城

通過已知點矩形對角線頂點形成的角度差來判斷,如果差值在大於90度且小於270度,則點在矩形內部,如果角度差等於90度或270度,則已知點在矩形的邊上,其他情況在矩形的外面。

下面附一段autocad lisp**,但願對你有幫助。

;;;計算三點間角度差

;;;引數: pt0 基點座標

;;; pt1 第一點座標

;;; pt2 第二點座標

;;;;;;返回值 三點的角度差(單位:弧度)(defun angle3p (pt0 pt1 pt2 / ang)(setq ang (- (angle pt0 pt2) (angle pt0 pt1)))

(if (< ang 0)

(setq ang ( ang (* 2 pi))))ang)

4樓:wh丶夕陽

#include

#include

typedef structcordinate;

void judage(cordinate *col,int num)else}}

int main(){

int num;

printf("輸入點的個數:");

scanf("%d",&num);

cordinate *col=(cordinate *)malloc(sizeof(cordinate)*num);

for(int i=0;i

5樓:清晨復日暮

給你個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);}

6樓:匿名使用者

#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"<

c++ 怎麼判斷1個點在一個不規則的四邊形內

7樓:

你好 我認為判斷一個點是不是在一個不規則的多邊形內,可用面積相等法;

設此多邊形的面積為s;

然後將該點與多邊形的個定點連起來;

於是便將這個多邊形分成了許多小三角形;

若這些小三角形的面積之和等於s;則說明該點在多邊形裡。

8樓:匿名使用者

設該四邊形四個點按順時針排列

(x1,y1),(x2,y2),(x3,y3),(x4,y4)平面上某點(x,y)

(atan2()計算的弧度在-pi ~ pi之間)#include

#include

#include

int main( )

;a[0] = atan2((y-y1),(x-x1));

a[1] = atan2((y2-y1),(x2-x1));

a[2] = atan2((y-y2),(x-x2));

a[3] = atan2((y3-y2),(x3-x2));

a[4] = atan2((y-y3),(x-x3));

a[5] = atan2((y4-y3),(x4-x3));

a[6] = atan2((y-y4),(x-x4));

a[7] = atan2((y1-y4),(x1-x4));

int i = 0;

for(i = 0; i < 8; i++)if(a[0]>a[1]&&a[2]>a[3]&&a[4]>a[5]&&a[6]>a[7])

printf("在內部\n");

else

printf("在外部\n");

return 0;

}你隨便用windows畫板畫一個突四邊形,把四個點座標按順時針記下來,再在平面上隨便選一點(x,y),試一下。

9樓:匿名使用者

設定某個x值,在四邊形內部則y必定會有一個範圍。(需要考慮x值處於中間的兩個點。同時還有直線的方程)

10樓:遲朝郎韻詩

"這個是屬於計算幾何演算法了,判別1個點是不是屬於任意多邊形,就要以這個點為橫座標,畫一條橫向射線,假如和多邊形的交點個數為奇數則在多邊形內,否則就在外,特殊情形:

1、當射線與其中一條邊重合,那麼邊忽略不計;

2、當射線與其中一頂點相交(外凸),交點只可以計算1個;

3、當射線與其中一頂點相交(內凹),交點不應被計算;

下邊為偽**:

count←0;

以(x,y)為端點,作從右向左的射線l;

for多邊形的每條邊s

doif

(x,y)在邊s上

then

return

true;

ifs不是水平的

then

ifs的1個端點在l上

if該端點是s兩端點中縱座標較大的端點

then

count

←count+1

else

ifs和l相交

then

count

←count+1;

ifcount

mod2=1

then

return

true;

else

return

false;"

如何判斷一個點在不在矩形內,給出簡單的演算法。

11樓:匿名使用者

用點的座標,x,y,來判斷矩形的左上角座標x1,y1和右下角座標x2,y2就行了

如何判斷一個點在一個矩形裡邊,一直點和矩形的座標點位置。

12樓:匿名使用者

設矩形復的左上角的點坐

制標為(x1, y1),右下角的點bai座標為(dux2,y2),需要判斷的點坐zhi標為(x0, y0).

判斷點(x0, y0)是dao

否在矩形內,只需要做如下判斷:

if(x0 > x1 && x0 < x2 && y0 > y1 && y0 < y2)

給出一個矩形用c語言判斷一個點是否這在一個矩形內7282

13樓:匿名使用者

提供個演算法思想吧:

假設矩形abcd,點e

判斷e是否在矩形內, 就判斷三角形 abe bce cde ade 四個三角形面積之和 是否等於abcd矩形的面積。如果相等,則在矩形內,否則在矩形外。