在网上搜索了很久,都没有一个现成的,自己写了一个。原理是:已知线段两点的坐标,以及任意点的坐标,利用任意点的坐标到线段两点坐标我距离和,与线段的长度比较,可以设定某个误差范围,符合条件即成立。 java写的代码: /** * 判断鼠标的点是否在线段上 * @param p1x * @param p1y * @param p2x * @param p2y * @param x * @param y * @return */ private boolean onSegment(int p1x, int p1y, int p2x, int p2y, int x, int y) { if (x >= min(p1x, p2x) && x <= max(p1x, p2x) && y >= min(p1y, p2y) && y <= max(p1y, p2y)) return true; else return false; } /** * 判断两点的最小值 * @param x1 * @param x2 * @return */ private int min(int x1, int x2) { if (x1 > x2) return x2; else return x1; } /** * 判断连点的最大值 * @param x1 * @param x2 * @return */ private int max(int x1, int x2) { if (x1 < x2) return x2; else