12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.SPolygonUtil = void 0;
- var SPolygonUtil = (function () {
- function SPolygonUtil() {
- }
- SPolygonUtil.pointIn = function (x, y, pointList) {
- var crossNum = 0;
- for (var i = 0; i < pointList.length; i++) {
- var p1 = pointList[i];
- var p2 = pointList[(i + 1) % pointList.length];
- if (p1.y == p2.y) {
- continue;
- }
- if (y < Math.min(p1.y, p2.y) || y >= Math.max(p1.y, p2.y)) {
- continue;
- }
- var x0 = ((y - p1.y) * (p2.x - p1.x)) / (p2.y - p1.y) + p1.x;
- if (x0 > x) {
- crossNum++;
- }
- }
- return crossNum % 2 == 1;
- };
- SPolygonUtil.clockDir = function (pointList) {
- if (pointList.length < 3) {
- return 0;
- }
- var index = 0;
- var len = pointList.length;
- for (var i = 1; i < len; i++) {
- if (pointList[i].x > pointList[index].x) {
- index = i;
- }
- }
- var p1 = pointList[index == 0 ? len - 1 : index - 1];
- var p2 = pointList[index];
- var p3 = pointList[(index + 1) % len];
- return (p2.x - p1.x) * (p3.y - p2.y) - (p2.y - p1.y) * (p3.x - p2.x);
- };
- return SPolygonUtil;
- }());
- exports.SPolygonUtil = SPolygonUtil;
|