@@ -236,24 +236,38 @@ define(function (require) {
236
236
var axShape ;
237
237
//var data = option.data;
238
238
var dataLength = option . data . length ;
239
- var length = option . axisTick . length ;
240
- var color = option . axisTick . lineStyle . color ;
241
- var lineWidth = option . axisTick . lineStyle . width ;
242
-
239
+ var tickOption = option . axisTick ;
240
+ var length = tickOption . length ;
241
+ var color = tickOption . lineStyle . color ;
242
+ var lineWidth = tickOption . lineStyle . width ;
243
+ var interval = tickOption . interval == 'auto'
244
+ ? _interval : ( tickOption . interval - 0 + 1 ) ;
245
+ var onGap = tickOption . onGap ;
246
+ var optGap = onGap
247
+ ? ( getGap ( ) / 2 )
248
+ : typeof onGap == 'undefined'
249
+ ? ( option . boundaryGap ? ( getGap ( ) / 2 ) : 0 )
250
+ : 0 ;
251
+
243
252
if ( option . position == 'bottom' || option . position == 'top' ) {
244
253
// 横向
245
254
var yPosition = option . position == 'bottom'
246
255
? grid . getYend ( )
247
256
: ( grid . getY ( ) - length ) ;
248
- for ( var i = 0 ; i < dataLength ; i ++ ) {
257
+ var x ;
258
+ for ( var i = 0 ; i < dataLength ; i += interval ) {
259
+ // 亚像素优化
260
+ x = self . subPixelOptimize (
261
+ getCoordByIndex ( i ) + optGap , lineWidth
262
+ ) ;
249
263
axShape = {
250
264
shape : 'line' ,
251
265
zlevel : _zlevelBase ,
252
266
hoverable : false ,
253
267
style : {
254
- xStart : getCoordByIndex ( i ) ,
268
+ xStart : x ,
255
269
yStart : yPosition ,
256
- xEnd : getCoordByIndex ( i ) ,
270
+ xEnd : x ,
257
271
yEnd : yPosition + length ,
258
272
strokeColor : color ,
259
273
lineWidth : lineWidth
@@ -267,16 +281,21 @@ define(function (require) {
267
281
var xPosition = option . position == 'left'
268
282
? ( grid . getX ( ) - length )
269
283
: grid . getXend ( ) ;
270
- for ( var i = 0 ; i < dataLength ; i ++ ) {
284
+ var y ;
285
+ for ( var i = 0 ; i < dataLength ; i += interval ) {
286
+ // 亚像素优化
287
+ y = self . subPixelOptimize (
288
+ getCoordByIndex ( i ) - optGap , lineWidth
289
+ ) ;
271
290
axShape = {
272
291
shape : 'line' ,
273
292
zlevel : _zlevelBase ,
274
293
hoverable : false ,
275
294
style : {
276
295
xStart : xPosition ,
277
- yStart : getCoordByIndex ( i ) ,
296
+ yStart : y ,
278
297
xEnd : xPosition + length ,
279
- yEnd : getCoordByIndex ( i ) ,
298
+ yEnd : y ,
280
299
strokeColor : color ,
281
300
lineWidth : lineWidth
282
301
}
@@ -400,12 +419,20 @@ define(function (require) {
400
419
function _buildSplitLine ( ) {
401
420
var axShape ;
402
421
//var data = option.data;
403
- var dataLength = option . data . length ;
404
- var lineType = option . splitLine . lineStyle . type ;
405
- var lineWidth = option . splitLine . lineStyle . width ;
406
- var color = option . splitLine . lineStyle . color ;
422
+ var dataLength = option . data . length ;
423
+ var sLineOption = option . splitLine ;
424
+ var lineType = sLineOption . lineStyle . type ;
425
+ var lineWidth = sLineOption . lineStyle . width ;
426
+ var color = sLineOption . lineStyle . color ;
407
427
color = color instanceof Array ? color : [ color ] ;
408
428
var colorLength = color . length ;
429
+
430
+ var onGap = sLineOption . onGap ;
431
+ var optGap = onGap
432
+ ? ( getGap ( ) / 2 )
433
+ : typeof onGap == 'undefined'
434
+ ? ( option . boundaryGap ? ( getGap ( ) / 2 ) : 0 )
435
+ : 0 ;
409
436
410
437
if ( option . position == 'bottom' || option . position == 'top' ) {
411
438
// 横向
@@ -416,7 +443,7 @@ define(function (require) {
416
443
for ( var i = 0 ; i < dataLength ; i += _interval ) {
417
444
// 亚像素优化
418
445
x = self . subPixelOptimize (
419
- getCoordByIndex ( i ) , lineWidth
446
+ getCoordByIndex ( i ) + optGap , lineWidth
420
447
) ;
421
448
axShape = {
422
449
shape : 'line' ,
@@ -445,7 +472,7 @@ define(function (require) {
445
472
for ( var i = 0 ; i < dataLength ; i += _interval ) {
446
473
// 亚像素优化
447
474
y = self . subPixelOptimize (
448
- getCoordByIndex ( i ) , lineWidth
475
+ getCoordByIndex ( i ) - optGap , lineWidth
449
476
) ;
450
477
axShape = {
451
478
shape : 'line' ,
@@ -468,12 +495,19 @@ define(function (require) {
468
495
469
496
function _buildSplitArea ( ) {
470
497
var axShape ;
471
- var color = option . splitArea . areaStyle . color ;
498
+ var sAreaOption = option . splitArea ;
499
+ var color = sAreaOption . areaStyle . color ;
472
500
color = color instanceof Array ? color : [ color ] ;
473
501
var colorLength = color . length ;
474
502
//var data = option.data;
475
503
var dataLength = option . data . length ;
476
-
504
+
505
+ var onGap = sAreaOption . onGap ;
506
+ var optGap = onGap
507
+ ? ( getGap ( ) / 2 )
508
+ : typeof onGap == 'undefined'
509
+ ? ( option . boundaryGap ? ( getGap ( ) / 2 ) : 0 )
510
+ : 0 ;
477
511
if ( option . position == 'bottom' || option . position == 'top' ) {
478
512
// 横向
479
513
var y = grid . getY ( ) ;
@@ -483,7 +517,7 @@ define(function (require) {
483
517
484
518
for ( var i = 0 ; i <= dataLength ; i += _interval ) {
485
519
curX = i < dataLength
486
- ? getCoordByIndex ( i )
520
+ ? ( getCoordByIndex ( i ) + optGap )
487
521
: grid . getXend ( ) ;
488
522
axShape = {
489
523
shape : 'rectangle' ,
@@ -511,7 +545,7 @@ define(function (require) {
511
545
512
546
for ( var i = 0 ; i <= dataLength ; i += _interval ) {
513
547
curY = i < dataLength
514
- ? getCoordByIndex ( i )
548
+ ? ( getCoordByIndex ( i ) - optGap )
515
549
: grid . getY ( ) ;
516
550
axShape = {
517
551
shape : 'rectangle' ,
@@ -585,7 +619,7 @@ define(function (require) {
585
619
? grid . getWidth ( )
586
620
: grid . getHeight ( ) ;
587
621
if ( option . boundaryGap ) { // 留空
588
- return total / ( dataLength + 1 ) ;
622
+ return total / dataLength ;
589
623
}
590
624
else { // 顶头
591
625
return total / ( dataLength > 1 ? ( dataLength - 1 ) : 1 ) ;
@@ -597,7 +631,7 @@ define(function (require) {
597
631
var data = option . data ;
598
632
var dataLength = data . length ;
599
633
var gap = getGap ( ) ;
600
- var position = option . boundaryGap ? gap : 0 ;
634
+ var position = option . boundaryGap ? ( gap / 2 ) : 0 ;
601
635
602
636
// Math.floor可能引起一些偏差,但性能会更好
603
637
for ( var i = 0 ; i < dataLength ; i ++ ) {
@@ -643,7 +677,7 @@ define(function (require) {
643
677
}
644
678
else {
645
679
var gap = getGap ( ) ;
646
- var position = option . boundaryGap ? gap : 0 ;
680
+ var position = option . boundaryGap ? ( gap / 2 ) : 0 ;
647
681
position += dataIndex * gap ;
648
682
649
683
if ( option . position == 'bottom'
0 commit comments