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 此題可用特殊值法,假設...