Имеется код:
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
// general settings
var middleX = canvas.width / 2;
var middleY = canvas.height / 2;
var radius = canvas.width / 2 - canvas.width / 10;
var startAngleIndex = 0.7;
var endAngleIndex = 2.3;
// Arrow settings
var arrowValueIndex = 1.5;
var arrowColor = "#d01617";
var arrowWidth = canvas.width / 20;
var DrawArrow = function() {
var arrowAngle = arrowValueIndex * Math.PI;
var toX = middleX + (radius) * Math.cos(arrowAngle);
var toY = middleY + (radius) * Math.sin(arrowAngle);
ctx.beginPath();
ctx.moveTo(middleX, middleY);
ctx.lineTo(toX, toY);
ctx.strokeStyle = arrowColor;
ctx.lineWidth = arrowWidth;
ctx.stroke();
};
DrawArrow();
<canvas id="canvas" width="300" height="300"></canvas>
Этот же код на jsfiddle
нужно сделать вот так :
Самым простым для вас вариантом будет взять готовую стрелочку и уже нарисовать ее. Приведу пример рисования стрелочки из SVG элемента. Просто скопируем PATH стрелки и передадим его в конструктор Path2D
let canvas = document.querySelector('canvas');
let ctx = canvas.getContext('2d');
let arrow = new Path2D("M10.273,5.009c0.444-0.444,1.143-0.444,1.587,0c0.429,0.429,0.429,1.143,0,1.571l-8.047,8.047h26.554 c0.619,0,1.127,0.492,1.127,1.111c0,0.619-0.508,1.127-1.127,1.127H3.813l8.047,8.032c0.429,0.444,0.429,1.159,0,1.587 c-0.444,0.444-1.143,0.444-1.587,0l-9.952-9.952c-0.429-0.429-0.429-1.143,0-1.571L10.273,5.009z");
ctx.fillStyle = '#ffcc00';
ctx.fill(arrow);
<canvas id="cnv" width="400px" height="400px"></canvas>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Пытаюсь реализовать загрузку файлаПеред загрузкой хочу узнать размер