| | |
| | | * 判断点是否在四边形内或边上 |
| | | * @param px 待测点的x |
| | | * @param py 待测点的y |
| | | * @param x 四个点的x数组 四个点必须是顺时针顺序,从左上角开始顺时针 |
| | | * @param x 四个点的x数组 四个点必须是顺时针顺序,从左下角开始顺时针 |
| | | * @param y 四个点的y数组 |
| | | * @return |
| | | */ |
| | |
| | | // 射线不与线段平行且点在y范围内 |
| | | if (py > y1 && py <= y2) { |
| | | // 计算交点x坐标 |
| | | double xIntersection = (double) (px - x1) * (y2 - y1) / (double) (py - y1) + x1; |
| | | //double xIntersection = (double) (px - x1) * (y2 - y1) / (double) (py - y1) + x1; |
| | | double xIntersection = x1 + (double) (py - y1) * (x2 - x1) / (y2 - y1); |
| | | |
| | | // 射线从左到右,且交点在点的右侧 |
| | | return xIntersection >= px; |