zoukankan      html  css  js  c++  java
  • 叉积_判断点是否在线段上

    //判断点是否在直线上
    //如果在直线上,那么这个点和线段两端点构成的向量的叉积一定==0
    //也就是两个向量共线(obviously)
    //那么如果坐标还在两端点之间的话就是在线段上了 
    
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    using namespace std;
    
    const int N=1e5+5;
    const double eps=1e-8;
    
    inline int read()
    {
        char c=getchar();int num=0;
        for(;!isdigit(c);c=getchar());
        for(;isdigit(c);c=getchar())
            num=num*10+c-'0';
        return num;
    }
    
    struct Point
    {
        double x,y;
        Point(double x=0,double y=0)
        {
            this->x=x,this->y=y;
        }
        Point operator - (const Point &a)
        {
            return Point(this->x-a.x,this->y-a.y);
        }
        double operator * (const Point &a)
        {
            return this->x*a.y-this->y*a.x;
        }
    }Q,P1,P2;
    
    int main()
    {
        scanf("%lf%lf%lf%lf%lf%lf",&Q.x,&Q.y,&P1.x,&P1.y,&P2.x,&P2.y);
        if(fabs((Q-P1)*(Q-P2))<eps&&min(P1.x,P2.x)-eps<=Q.x&&max(P1.x,P2.x)+eps>=Q.x&&min(P1.y,P2.y)-eps<=Q.y&&max(P1.y,P2.y)+eps>=Q.y)
            puts("Yes");
        else
            puts("No");
        return 0;
    }
  • 相关阅读:
    babel6的babel-plugin-add-module-exports插件
    babel ---- presets字段设定转码规则
    Babel6.x的安装过程
    npm
    JavaScript的数组
    JavaScript的数据类型
    JavaScript
    数据类型详解
    jsp笔记总结
    Servlet学习总结
  • 原文地址:https://www.cnblogs.com/lovewhy/p/9022868.html
Copyright © 2011-2022 走看看