看兩條線是否相等,就是列等式看一不一樣。
因為有除以零或者兩點相同的可能,所以把兩邊等式交叉相乘,直接看乘積是否相等。
程式碼:
#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; }
沒有留言:
張貼留言