91fb2d938c43ae4025d767ff1249f55b4bfea1e9.svn-base 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /**
  2. * zrender
  3. *
  4. * @author Kener (@Kener-林峰, kener.linfeng@gmail.com)
  5. *
  6. * shape类:十字准星
  7. * 可配图形属性:
  8. {
  9. // 基础属性
  10. shape : 'cross', // 必须,shape类标识,需要显式指定
  11. id : {string}, // 必须,图形唯一标识,可通过'zrender/tool/guid'方法生成
  12. zlevel : {number}, // 默认为0,z层level,决定绘画在哪层canvas中
  13. invisible : {boolean}, // 默认为false,是否可见
  14. // 样式属性,默认状态样式样式属性
  15. style : {
  16. rect : {Object}, // 必须,对角框
  17. x : {number}, // 必须,横坐标
  18. y : {number}, // 必须,纵坐标
  19. },
  20. // 样式属性,高亮样式属性,当不存在highlightStyle时使用基于默认样式扩展显示
  21. highlightStyle : {
  22. // 同style
  23. }
  24. // 交互属性,详见shape.Base
  25. // 事件属性,详见shape.Base
  26. }
  27. */
  28. define(function (require) {
  29. var Base = require('zrender/shape/Base');
  30. var LineShape = require('zrender/shape/Line');
  31. var zrUtil = require('zrender/tool/util');
  32. function Cross(options) {
  33. Base.call(this, options);
  34. }
  35. Cross.prototype = {
  36. type : 'cross',
  37. /**
  38. * 创建矩形路径
  39. * @param {Context2D} ctx Canvas 2D上下文
  40. * @param {Object} style 样式
  41. */
  42. buildPath : function (ctx, style) {
  43. var rect = style.rect;
  44. style.xStart = rect.x;
  45. style.xEnd = rect.x + rect.width;
  46. style.yStart = style.yEnd = style.y;
  47. LineShape.prototype.buildPath(ctx, style);
  48. style.xStart = style.xEnd = style.x;
  49. style.yStart = rect.y;
  50. style.yEnd = rect.y + rect.height;
  51. LineShape.prototype.buildPath(ctx, style);
  52. },
  53. /**
  54. * 返回矩形区域,用于局部刷新和文字定位
  55. * @param {Object} style
  56. */
  57. getRect : function (style) {
  58. return style.rect;
  59. },
  60. isCover : require('./normalIsCover')
  61. };
  62. zrUtil.inherits(Cross, Base);
  63. return Cross;
  64. });