Skip to content

Commit

Permalink
Support rotation for pointStyle image (#6287)
Browse files Browse the repository at this point in the history
  • Loading branch information
nagix authored and simonbrunel committed May 24, 2019
1 parent b02a3a8 commit 70b32ff
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/helpers/helpers.canvas.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,11 @@ var exports = {
if (style && typeof style === 'object') {
type = style.toString();
if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {
ctx.drawImage(style, x - style.width / 2, y - style.height / 2, style.width, style.height);
ctx.save();
ctx.translate(x, y);
ctx.rotate(rad);
ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);
ctx.restore();
return;
}
}
Expand Down
58 changes: 58 additions & 0 deletions test/fixtures/element.point/point-style-image.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
var imageCanvas = document.createElement('canvas');
var imageContext = imageCanvas.getContext('2d');

imageCanvas.width = 40;
imageCanvas.height = 40;

imageContext.fillStyle = '#f00';
imageContext.beginPath();
imageContext.moveTo(20, 0);
imageContext.lineTo(10, 40);
imageContext.lineTo(20, 30);
imageContext.closePath();
imageContext.fill();

imageContext.fillStyle = '#a00';
imageContext.beginPath();
imageContext.moveTo(20, 0);
imageContext.lineTo(30, 40);
imageContext.lineTo(20, 30);
imageContext.closePath();
imageContext.fill();

module.exports = {
config: {
type: 'line',
data: {
labels: [0, 1, 2, 3, 4, 5, 6, 7],
datasets: [{
data: [0, 0, 0, 0, 0, 0, 0, 0],
showLine: false
}]
},
options: {
responsive: false,
legend: false,
title: false,
elements: {
point: {
pointStyle: imageCanvas,
rotation: [0, 45, 90, 135, 180, 225, 270, 315]
}
},
layout: {
padding: 20
},
scales: {
xAxes: [{display: false}],
yAxes: [{display: false}]
}
}
},
options: {
canvas: {
height: 256,
width: 512
}
}
};
Binary file added test/fixtures/element.point/point-style-image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 70b32ff

Please sign in to comment.