Cartesian2D.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. var zrUtil = require("zrender/lib/core/util");
  2. var Cartesian = require("./Cartesian");
  3. function Cartesian2D(name) {
  4. Cartesian.call(this, name);
  5. }
  6. Cartesian2D.prototype = {
  7. constructor: Cartesian2D,
  8. type: 'cartesian2d',
  9. /**
  10. * @type {Array.<string>}
  11. * @readOnly
  12. */
  13. dimensions: ['x', 'y'],
  14. /**
  15. * Base axis will be used on stacking.
  16. *
  17. * @return {module:echarts/coord/cartesian/Axis2D}
  18. */
  19. getBaseAxis: function () {
  20. return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');
  21. },
  22. /**
  23. * If contain point
  24. * @param {Array.<number>} point
  25. * @return {boolean}
  26. */
  27. containPoint: function (point) {
  28. var axisX = this.getAxis('x');
  29. var axisY = this.getAxis('y');
  30. return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));
  31. },
  32. /**
  33. * If contain data
  34. * @param {Array.<number>} data
  35. * @return {boolean}
  36. */
  37. containData: function (data) {
  38. return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);
  39. },
  40. /**
  41. * @param {Array.<number>} data
  42. * @param {boolean} [clamp=false]
  43. * @return {Array.<number>}
  44. */
  45. dataToPoint: function (data, clamp) {
  46. var xAxis = this.getAxis('x');
  47. var yAxis = this.getAxis('y');
  48. return [xAxis.toGlobalCoord(xAxis.dataToCoord(data[0], clamp)), yAxis.toGlobalCoord(yAxis.dataToCoord(data[1], clamp))];
  49. },
  50. /**
  51. * @param {Array.<number>} point
  52. * @param {boolean} [clamp=false]
  53. * @return {Array.<number>}
  54. */
  55. pointToData: function (point, clamp) {
  56. var xAxis = this.getAxis('x');
  57. var yAxis = this.getAxis('y');
  58. return [xAxis.coordToData(xAxis.toLocalCoord(point[0]), clamp), yAxis.coordToData(yAxis.toLocalCoord(point[1]), clamp)];
  59. },
  60. /**
  61. * Get other axis
  62. * @param {module:echarts/coord/cartesian/Axis2D} axis
  63. */
  64. getOtherAxis: function (axis) {
  65. return this.getAxis(axis.dim === 'x' ? 'y' : 'x');
  66. }
  67. };
  68. zrUtil.inherits(Cartesian2D, Cartesian);
  69. var _default = Cartesian2D;
  70. module.exports = _default;