Pourquoi le code suivant ne produit pas trois lignes, toutes avec des dégradés similaires?HTML5 Canvas: dégradés et strokeStyle m'ont confondu
<html>
<body style="background: black;">
<canvas id="Test" width="516" height="404"> </canvas>
<script>
var ctx = document.getElementById('Test').getContext('2d');
ctx.lineWidth = 8;
function addColorStops(gradient) {
gradient.addColorStop(0.5, 'rgba(151, 165, 193, 0.5)');
gradient.addColorStop(1, 'rgba(151, 165, 193, 1)');
}
function drawLine(x1, x2, y) {
var g = ctx.createLinearGradient(x1, y, x2, y);
addColorStops(g);
ctx.strokeStyle = g;
ctx.moveTo(x1, y);
ctx.lineTo(x2, y);
ctx.stroke();
}
drawLine(10, 100, 10);
drawLine(10, 100, 30);
drawLine(10, 100, 50);
</script>
</body>
</html>
lieu la première ligne obtient un gradient très très faible, la deuxième ligne obtient un gradient très bon, et le dernier obtient un gradient drastique.
Je pense que cela découle d'une mauvaise compréhension de la façon dont les paramètres soit à createLinearGradient
sont censés travailler, ou malentendu comment strokeStyle
missions influent coups futurs ...