Мне нужно создать этот шаблон, и я использую HTML canvas для создания этой схемы. Я сталкиваюсь со следующими проблемами -
- В правом круге текст не отображается сверху круга. Этот текст должен отображаться в верхней части круга.
- В других кругах тексты не отображаются в прямом направлении. Мне нужно остановить вращение текста. Как я могу решить эту проблему?
Пожалуйста, помогите мне, как решить эту проблему. Код я взял из разных источников.
var ctx;
var canvas = document.getElementById('myCanvas');
function createCanvasPainting() {
if (!canvas || !canvas.getContext) {
return false;
}
canvas.width = 600;
canvas.height = 600;
ctx = canvas.getContext('2d');
ctx.strokeStyle = '#B8D9FE';
ctx.fillStyle = '#B8D9FE';
ctx.translate(200, 200);
drawChildCircles(4);
ctx.arc(0, 0, 40, 0, Math.PI * 2); //center circle
ctx.fill();
ctx.font = 'bold 13pt Calibri';
ctx.textAlign = 'center';
ctx.fillStyle = 'red';
ctx.textBaseline = 'middle';
ctx.fillText('Hi', 0, 0);
ctx.stroke();
}
function drawChildCircles(n) {
var ang_unit = Math.PI * 2 / n;
ctx.save();
for (var i = 0; i < n; i++) {
ctx.rotate(ang_unit);
ctx.strokeStyle = '#B8D9FE';
ctx.fillStyle = '#B8D9FE';
ctx.beginPath();
ctx.moveTo(0,0);
ctx.lineTo(150,0);
ctx.arc(150, 0, 40, 0, Math.PI * 2);
ctx.fill();
ctx.stroke();
ctx.font = 'bold 13pt Calibri';
ctx.textAlign = 'center';
ctx.fillStyle = '#000';
ctx.textBaseline = 'middle';
if (i==n-1) {
ctx.fillText('data not showing top', 150, 0);
} else {
ctx.fillText('OK', 150, 0);
}
}
ctx.strokeStyle = '#B8D9FE';
ctx.fillStyle = '#B8D9FE';
ctx.restore();
}
createCanvasPainting();
<canvas id="myCanvas"></canvas>
JSFiddle Link: https://jsfiddle.net/souravdikshit/nkfa97g6/17/