题目描述:
在二维坐标系中,所有的值是double类型,那么一个矩形可以由四个点来代表,(x1, y1)为最左的点,(x2, y2)为最上的点,(x3, y3)为最下的点,(x4, y4)为最右的点。
给定4个点代表的矩形,再给定一个点(x, y),判断(x, y)是否在矩形中
题目分析:
矩形的边平行于坐标轴
此时(x1, y1)为左上角的点,(x2, y2)为右上角的点,(x3, y3)为左下角的点,(x4, y4)为右下角的点。这种情况很好判断。
矩形的边不平行于坐标轴
此时,需要旋转矩形,使之平行于坐标轴。
#include
#include
using namespace std;
bool isInside(double x1, double x4, double y1, double y4, double x, double y)
{
if(x <= x1) return false;
if(x >= x4) return false;
if(y >= y1) return false;
if(y <= y4) return false;
return true;
}
bool isInside(double x1, double y1, double x2, double y2, double x3, double y3,
double x4, double y4, double x, d