@@ -410,6 +410,12 @@ drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity,
410
410
var path , linewidth , radius ;
411
411
var patternTag ;
412
412
var patternAttrs = { } ;
413
+
414
+ var fgC = tinycolor ( fgcolor ) ;
415
+ var fgRGB = Color . tinyRGB ( fgC ) ;
416
+ var fgAlpha = fgC . getAlpha ( ) ;
417
+ var opacity = fgopacity * fgAlpha ;
418
+
413
419
switch ( shape ) {
414
420
case '/' :
415
421
width = size * Math . sqrt ( 2 ) ;
@@ -421,8 +427,8 @@ drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity,
421
427
patternTag = 'path' ;
422
428
patternAttrs = {
423
429
'd' : path ,
424
- 'opacity' : fgopacity ,
425
- 'stroke' : fgcolor ,
430
+ 'opacity' : opacity ,
431
+ 'stroke' : fgRGB ,
426
432
'stroke-width' : linewidth + 'px'
427
433
} ;
428
434
break ;
@@ -436,8 +442,8 @@ drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity,
436
442
patternTag = 'path' ;
437
443
patternAttrs = {
438
444
'd' : path ,
439
- 'opacity' : fgopacity ,
440
- 'stroke' : fgcolor ,
445
+ 'opacity' : opacity ,
446
+ 'stroke' : fgRGB ,
441
447
'stroke-width' : linewidth + 'px'
442
448
} ;
443
449
break ;
@@ -454,8 +460,8 @@ drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity,
454
460
patternTag = 'path' ;
455
461
patternAttrs = {
456
462
'd' : path ,
457
- 'opacity' : fgopacity ,
458
- 'stroke' : fgcolor ,
463
+ 'opacity' : opacity ,
464
+ 'stroke' : fgRGB ,
459
465
'stroke-width' : linewidth + 'px'
460
466
} ;
461
467
break ;
@@ -468,8 +474,8 @@ drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity,
468
474
patternTag = 'path' ;
469
475
patternAttrs = {
470
476
'd' : path ,
471
- 'opacity' : fgopacity ,
472
- 'stroke' : fgcolor ,
477
+ 'opacity' : opacity ,
478
+ 'stroke' : fgRGB ,
473
479
'stroke-width' : linewidth + 'px'
474
480
} ;
475
481
break ;
@@ -482,8 +488,8 @@ drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity,
482
488
patternTag = 'path' ;
483
489
patternAttrs = {
484
490
'd' : path ,
485
- 'opacity' : fgopacity ,
486
- 'stroke' : fgcolor ,
491
+ 'opacity' : opacity ,
492
+ 'stroke' : fgRGB ,
487
493
'stroke-width' : linewidth + 'px'
488
494
} ;
489
495
break ;
@@ -497,8 +503,8 @@ drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity,
497
503
patternTag = 'path' ;
498
504
patternAttrs = {
499
505
'd' : path ,
500
- 'opacity' : fgopacity ,
501
- 'stroke' : fgcolor ,
506
+ 'opacity' : opacity ,
507
+ 'stroke' : fgRGB ,
502
508
'stroke-width' : linewidth + 'px'
503
509
} ;
504
510
break ;
@@ -515,8 +521,8 @@ drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity,
515
521
'cx' : width / 2 ,
516
522
'cy' : height / 2 ,
517
523
'r' : radius ,
518
- 'opacity' : fgopacity ,
519
- 'fill' : fgcolor
524
+ 'opacity' : opacity ,
525
+ 'fill' : fgRGB
520
526
} ;
521
527
break ;
522
528
}
@@ -550,14 +556,19 @@ drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity,
550
556
} ) ;
551
557
552
558
if ( bgcolor ) {
559
+ var bgC = tinycolor ( bgcolor ) ;
560
+ var bgRGB = Color . tinyRGB ( bgC ) ;
561
+ var bgAlpha = bgC . getAlpha ( ) ;
562
+
553
563
var rects = el . selectAll ( 'rect' ) . data ( [ 0 ] ) ;
554
564
rects . exit ( ) . remove ( ) ;
555
565
rects . enter ( )
556
566
. append ( 'rect' )
557
567
. attr ( {
558
568
'width' : width + 'px' ,
559
569
'height' : height + 'px' ,
560
- 'fill' : bgcolor
570
+ 'fill' : bgRGB ,
571
+ 'fill-opacity' : bgAlpha ,
561
572
} ) ;
562
573
}
563
574
0 commit comments