c怎麼判斷點在三角形內,c 怎麼判斷一個點在三角形內

時間 2021-09-01 23:08:10

1樓:電燈劍客

一樓說的沒錯,這樣講會把人家嚇跑的。這個問題太簡單了,不需要很高深的演算法。

二樓的做法錯,考察三角形(0,0),(0,3),(3,0)。點(2,2)在三角形外!

三樓的說法基本正確,但是判斷實數相等不是那麼容易的噢,由其是(x,y)非常靠近某一邊的時候很可能會由於舍入誤差造成判斷錯誤。(這個問題有一些辦法來處理,但是需要用到比較高深的知識)

我的做法在下面的連結裡,本質上和三樓的方法一樣,也沒有去處理舍入誤差的影響。但是至少實數和0比大小比一般兩個實數判斷相等要容易一些。

2樓:

該點與任意2頂點分別圍成的3個三角形面積和,等於原三角形面積則在其內,否則在其外。

3樓:

我有個想法,就是先判斷該點是否在三角形上,如過是就不用在判斷了,否則從該點做一條平行於x軸的射線,判斷此射線與三角形的邊有幾個交點,如果是一個,則在三角形內,如果是0個或2個則在三角形外。

4樓:超級奶爸頭子

可以用一個點類,來產生三個點,再求出三點中橫座標最大和最小的兩個點,再和第四點橫座標比較,只要第四點小於最大橫座標,大於最小橫座標,並且縱座標小於最大縱座標和大於最小縱座標,就可以判斷該點在這個三角形裡。否則不在

5樓:火駒

這個問題屬於計算機圖形學的範疇了,

比如多邊形的填充裡面的掃描線演算法,種子填充演算法;線或者多邊形的裁剪問題等等,就是專門研究這類判斷兩個物件之間的位置問題。

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

6樓:

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

設此多邊形的面積為s;

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

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

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

7樓:匿名使用者

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

(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),試一下。

8樓:匿名使用者

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

9樓:遲朝郎韻詩

"這個是屬於計算幾何演算法了,判別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;"

怎麼樣用c++編寫一個判斷是不是三角形?

10樓:匿名使用者

#include

using namespace std;

int main()

11樓:匿名使用者

#includeint main()

在三角形ABC,在三角形ABC中,b 7,c 5 a 4,p 這個三角形是什麼三角形,怎麼算的

sinacosc 3cosasinc,sinacosc sinccosa 4cosasinc所以sinb sin a c 4cosasincsinb sinc b c 4cosa 4 b 2 c 2 a 2 2bc b 2 2 b 2 c 2 a 2 a 2 c 2 2b c 2 a 2 2b 所以...

如圖,在三角形ABC中,角C 2角B,AD是三角形ABC的角平分線。求證 AB AC CD

證明 ab ac,ad平分 bac ad bc 等腰三角形三線合一定理 adb 90 ad,ae分別是 a和 a的外角的平分線 dab 1 2 a,eab 1 2 a的外角 角平分線將這個角分為兩個相等的角 又 a a的外角 180 dab eab 90 dae 90 be ae,dae 90 ad...

在三角形ABC中,a,b,c,分別是角A,角B,角C的對邊,若角B 60度,則c c b 的值為多少?為什么

解 b 60度 餘弦定理 aa cc 2accos60 bb aa cc ac bb 0 c b c b a c a a b a b c a c c a b a b a c a c b c b c a c a b a c b b a c a c b c a c a c a 1 此題可用特殊值法,假設...