【经典算法】:判断某点是否在某线性区域内

#include <iostream>
using namespace std;
int main(){
    int x1,y1,x2,y2,x3,y3,x4,y4,flag=0;
    cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
    int  k1 = (y2-y1)/(x2-x1);
    int k2 = (y3-y2)/(x3-x2);
    if(x4<x2){        //在左边的情况
        int temp_y = k1*(x4-x2)+y2;
        cout<<y4<<" "<<temp_y;
        if(temp_y<y4){
            flag = 1;   //在下面
        }
        else{
            flag = 2;   //在上面
        }
    }
    if(x4>x2){
        int temp_y =k2*(x4-x2)+y2;
        cout<<y4<<" "<<temp_y;
        if(temp_y<y4){
            flag = 1;   //在下面
        }
        else{
            flag = 2;   //在上面
        }
    }
    cout<<endl<<flag<<endl;
}

// flag==2代表了 2跟4这个点需要重新定义
// flag==1代表了 2跟4这个点不需要重新定义

你可能感兴趣的:(算法,namespace,X)