polyline.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var segments_1 = require("./segments");
  4. var util_1 = require("./util");
  5. exports.default = {
  6. /**
  7. * 计算多折线的包围盒
  8. * @param {array} points 点的集合 [x,y] 的形式
  9. * @return {object} 包围盒
  10. */
  11. box: function (points) {
  12. var xArr = [];
  13. var yArr = [];
  14. for (var i = 0; i < points.length; i++) {
  15. var point = points[i];
  16. xArr.push(point[0]);
  17. yArr.push(point[1]);
  18. }
  19. return util_1.getBBoxByArray(xArr, yArr);
  20. },
  21. /**
  22. * 计算多折线的长度
  23. * @param {array} points 点的集合 [x,y] 的形式
  24. * @return {object} 多条边的长度
  25. */
  26. length: function (points) {
  27. return segments_1.lengthOfSegment(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(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(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(points, t);
  56. },
  57. };
  58. //# sourceMappingURL=polyline.js.map