110,547
社区成员
发帖
与我相关
我的任务
分享
if(x1==x || x2==x)
{
if(x1==x2 || x==x1 && y==y1 || x==x2 || y==y2) ;//在
else ;//不在
}
else if((x1-x)*(y1-y)==(x2-x)*(y2-y))
{
;//在
}
else
{
;//不在
}
double vx1=x-x1;
double vy1=y-y1;//向量v1
double vx2=x-x2;
double vy2=y-y2;//向量v2
double m1=vx1*vx1+vy1*vy1;//|v1|^2
double m2=vx2*vx2+vy2*vy2;//|v2|^2
if(m1==0 || m2==0) ;//在
else if((vx1*vx2+vy1*vy2)*(vx1*vx2+vy1*vy2)==m1*m2);//在
else ;//不在
//判断坐标点P到线段两端点(AB)的距离。
//只要满足公式 AB=PA+PB 点P就在线段点上
bool isPointInLine(Point pt,Point lnstart,Point lnEnd)
{
double lenpt2start=Math.sqrt(Math.Power(pt.x-lnstart.x,2)+Math.Power(pt.y-lnstart.y,2));
double lenpt2end=Math.sqrt(Math.Power(pt.x-lnend.x,2)+Math.Power(pt.y-lnend.y,2));
double len=Math.sqrt(Math.Power(lnstart.x-lnend.x,2)+Math.Power(lnstart.y-lnend.y,2));
//Math开方计算出来的结果可能会有点点误差
return (lenpt2start+lenpt2end-len)<0.000001;
}
Vector v1 = new Vector(1, 1);
Vector v10 = new Vector(10, 10);
Vector v5 = new Vector(5, 5);
Vector v110 = v1 - v10;
Vector v15 = v1 - v5;
if (Math.Abs((double)Vector.AngleBetween(v110, v15)) < 1e-6)
{
//to do
}