簡單三維幾何,判斷倆個三角形是否相交

2021-07-02 15:17:43 字數 1599 閱讀 8241

簡單三維幾何,多貼些三維幾何的基本的東西,一些基本函式,和定義,

判斷倆個三角形是否相交,如果相交,那麼必然有乙個三角形的一條邊經過另乙個三角形的內部、邊上或者頂點,

**:

#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

const double eps=1e-6;

int dcmp(double x)

struct point3

point3() {}

void in()

};typedef point3 vector3;

vector3 operator +(vector3 a,vector3 b)

vector3 operator -(vector3 a,vector3 b)

vector3 operator * (vector3 a,double p)

vector3 operator / (vector3 a,double p)

bool operator == (vector3 a,vector3 b)

double dot(vector3 a,vector3 b)

double length(vector3 a)

double angle(vector3 a,vector3 b)

double distancetoplane(point3 p,point3 p0,vector3 n)

point3 getplaneprojection(point3 p,point3 p0,vector3 n)

point3 lineplaneintersection(point3 p1,point3 p2,point3 p3,point3 p0,vector3 n)

vector3 cross(vector3 a,vector3 b)

double area2(point3 a,point3 b,point3 c)

bool pointintri(point3 p,point3 p0,point3 p1,point3 p2)

bool trisegintersection(point3 p0,point3 p1,point3 p2,point3 a,point3 b,point3 &p)

}double distacetoline(point3 p,point3 a,point3 b)

double distacetosegment(point3 p,point3 a,point3 b)

double volume6(point3 a,point3 b,point3 c,point3 d)

struct face

int cansee(point3 *p,int i) const

};vectorch3d(point3 *p,int n)

}); cur.push_back((face) });

for(int i=3;inext;

for(int j=0;j>t;

while(t--)

return 0;

}

三角形判斷

description 婁月的妹妹劉月是個初中生,某天回來興高采烈的回家告訴姐姐他學會了如何憑藉三角形三邊判斷三角形的形狀 設兩條短邊為啊a,b 長邊為c,判斷a a b b和c c的關係 於是婁月告訴劉月,給她三條邊,她可以在一秒之內知道三角形是直角,鈍角還是銳角三角形,當然,這麼快只有程式設計才...

判斷三角形

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 小明非常喜歡研究三角形。現在,小明已經知道三角形的三條邊,如果三條邊能組成三角形,小明就會很高興,他就會得到乙個 ye 如果他經過進一步的研究知道它又是等腰三角形,他又會得乙個 ye 他再次研究出它又是乙個等邊三角形,當然,他又...

判斷三角形

problem description 給定三條邊,請你判斷一下能不能組成乙個三角形。input 輸入資料第一行包含乙個數m,接下有m行,每行乙個例項,包含三個正數a,b,c。其中a,b,c 1000 output 對於每個測試例項,如果三條邊長a,b,c能組成三角形的話,輸出yes,否則no。sa...