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()
c語言或者c判斷三角形的形狀
include using namespace std int main int result 2 for int i 0 i 2 i else if a b b c a c else if a a b b c c a a c c b b b b c c a a else else for int ...
要求用C編寫三角形類,要求用C 編寫三角形類
數學沒學好 請列出三角形周長和麵積計算公式 確實很菜的問題 樓主 你多看看課本就好了!這樣的問題也問,真是讓人無語 用c 定義一個三角形類 using system using system.collections.generic using system.linq using system.tex...
用C定義三角形類,用C 定義一個三角形類
using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace test private double b 返回邊2 pu...