polygon.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import Geom from './base';
  2. import { isArray } from '../util/common';
  3. import './shape/polygon';
  4. class Polygon extends Geom {
  5. getDefaultCfg() {
  6. var cfg = super.getDefaultCfg();
  7. cfg.type = 'polygon';
  8. cfg.shapeType = 'polygon';
  9. cfg.generatePoints = true;
  10. return cfg;
  11. }
  12. createShapePointsCfg(obj) {
  13. var cfg = super.createShapePointsCfg(obj);
  14. var self = this;
  15. var x = cfg.x;
  16. var y = cfg.y;
  17. var temp;
  18. if (!(isArray(x) && isArray(y))) {
  19. var xScale = self.getXScale();
  20. var yScale = self.getYScale();
  21. var xCount = xScale.values ? xScale.values.length : xScale.ticks.length;
  22. var yCount = yScale.values ? yScale.values.length : yScale.ticks.length;
  23. var xOffset = 0.5 * 1 / xCount;
  24. var yOffset = 0.5 * 1 / yCount;
  25. if (xScale.isCategory && yScale.isCategory) {
  26. x = [x - xOffset, x - xOffset, x + xOffset, x + xOffset];
  27. y = [y - yOffset, y + yOffset, y + yOffset, y - yOffset];
  28. } else if (isArray(x)) {
  29. temp = x;
  30. x = [temp[0], temp[0], temp[1], temp[1]];
  31. y = [y - yOffset / 2, y + yOffset / 2, y + yOffset / 2, y - yOffset / 2];
  32. } else if (isArray(y)) {
  33. temp = y;
  34. y = [temp[0], temp[1], temp[1], temp[0]];
  35. x = [x - xOffset / 2, x - xOffset / 2, x + xOffset / 2, x + xOffset / 2];
  36. }
  37. cfg.x = x;
  38. cfg.y = y;
  39. }
  40. return cfg;
  41. }
  42. }
  43. Geom.Polygon = Polygon;
  44. export default Polygon;