polygon.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var segments_1 = require("./segments");
  4. var polyline_1 = require("./polyline");
  5. function getAllPoints(points) {
  6. var tmp = points.slice(0);
  7. if (points.length) {
  8. tmp.push(points[0]);
  9. }
  10. return tmp;
  11. }
  12. exports.default = {
  13. /**
  14. * 计算多边形的包围盒
  15. * @param {array} points 点的集合 [x,y] 的形式
  16. * @return {object} 包围盒
  17. */
  18. box: function (points) {
  19. return polyline_1.default.box(points);
  20. },
  21. /**
  22. * 计算多边形的长度
  23. * @param {array} points 点的集合 [x,y] 的形式
  24. * @return {object} 多边形边的长度
  25. */
  26. length: function (points) {
  27. return segments_1.lengthOfSegment(getAllPoints(points));
  28. },
  29. /**
  30. * 根据比例获取多边形的点
  31. * @param {array} points 点的集合 [x,y] 的形式
  32. * @param {number} t 在多边形的长度上的比例
  33. * @return {object} 根据比例值计算出来的点
  34. */
  35. pointAt: function (points, t) {
  36. return segments_1.pointAtSegments(getAllPoints(points), t);
  37. },
  38. /**
  39. * 指定点到多边形的距离
  40. * @param {array} points 点的集合 [x,y] 的形式
  41. * @param {number} x 指定点的 x
  42. * @param {number} y 指定点的 y
  43. * @return {number} 点到多边形的距离
  44. */
  45. pointDistance: function (points, x, y) {
  46. return segments_1.distanceAtSegment(getAllPoints(points), x, y);
  47. },
  48. /**
  49. * 根据比例获取多边形的切线角度
  50. * @param {array} points 点的集合 [x,y] 的形式
  51. * @param {number} t 在多边形的长度上的比例
  52. * @return {object} 根据比例值计算出来的角度
  53. */
  54. tangentAngle: function (points, t) {
  55. return segments_1.angleAtSegments(getAllPoints(points), t);
  56. },
  57. };
  58. //# sourceMappingURL=polygon.js.map