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矩形的面積。如果相等,則在矩形內,否則在矩形外。