util.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.piMod = exports.getBBoxRange = exports.getBBoxByArray = exports.isNumberEqual = exports.distance = void 0;
  4. var util_1 = require("@antv/util");
  5. /**
  6. * 两点之间的距离
  7. * @param {number} x1 起始点 x
  8. * @param {number} y1 起始点 y
  9. * @param {number} x2 结束点 x
  10. * @param {number} y2 结束点 y
  11. * @return {number} 距离
  12. */
  13. function distance(x1, y1, x2, y2) {
  14. var dx = x1 - x2;
  15. var dy = y1 - y2;
  16. return Math.sqrt(dx * dx + dy * dy);
  17. }
  18. exports.distance = distance;
  19. function isNumberEqual(v1, v2) {
  20. return Math.abs(v1 - v2) < 0.001;
  21. }
  22. exports.isNumberEqual = isNumberEqual;
  23. function getBBoxByArray(xArr, yArr) {
  24. var minX = util_1.min(xArr);
  25. var minY = util_1.min(yArr);
  26. var maxX = util_1.max(xArr);
  27. var maxY = util_1.max(yArr);
  28. return {
  29. x: minX,
  30. y: minY,
  31. width: maxX - minX,
  32. height: maxY - minY,
  33. };
  34. }
  35. exports.getBBoxByArray = getBBoxByArray;
  36. function getBBoxRange(x1, y1, x2, y2) {
  37. return {
  38. minX: util_1.min([x1, x2]),
  39. maxX: util_1.max([x1, x2]),
  40. minY: util_1.min([y1, y2]),
  41. maxY: util_1.max([y1, y2]),
  42. };
  43. }
  44. exports.getBBoxRange = getBBoxRange;
  45. function piMod(angle) {
  46. return (angle + Math.PI * 2) % (Math.PI * 2);
  47. }
  48. exports.piMod = piMod;
  49. //# sourceMappingURL=util.js.map