看兩條線是否相等,就是列等式看一不一樣。
因為有除以零或者兩點相同的可能,所以把兩邊等式交叉相乘,直接看乘積是否相等。
程式碼:
#include<iostream>
using namespace std;
typedef struct
{
int x,y;
}Point;
int main()
{
int cases;
char ignore;
cin>>cases;
while(cases--)
{
Point p1,p2,p3;
cin>>p1.x>>ignore>>p1.y>>p2.x>>ignore>>p2.y>>p3.x>>ignore>>p3.y;
double m1,m2;
if((p2.y-p1.y)*(p3.x-p2.x)==(p2.x-p1.x)*(p3.y-p2.y))
cout<<"collinear"<<endl;
else cout<<"not collinear"<<endl;
}
return 0;
}
沒有留言:
張貼留言