@josie
Можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
const canvas = document.querySelector('canvas'); const ctx = canvas.getContext('2d'); let sunX = canvas.width / 2; let sunY = canvas.height / 2; let sunRadius = 50; let sunGradient = ctx.createRadialGradient(sunX, sunY, 0, sunX, sunY, sunRadius); sunGradient.addColorStop(0, '#ffce00'); sunGradient.addColorStop(1, '#ff8a00'); function drawSun() { ctx.beginPath(); ctx.arc(sunX, sunY, sunRadius, 0, 2 * Math.PI); ctx.fillStyle = sunGradient; ctx.fill(); } let angle = 0; function animateSun() { angle += 0.01; sunX = canvas.width / 2 + Math.cos(angle) * 200; sunY = canvas.height / 2 + Math.sin(angle) * 200; drawSun(); } setInterval(animateSun, 10); |
В данном коде мы создаем элемент canvas и контекст для рисования. Затем мы задаем начальные значения для координат и радиуса солнца, а также создаем градиент, который будет заполнять контур солнца.
В функции drawSun мы рисуем круг солнца с помощью метода arc и заполняем его градиентом.
Функция animateSun производит анимацию солнца, изменяя координаты солнца в зависимости от угла поворота. Угол увеличивается на каждом шаге анимации, и при достижении полного круга он сбрасывается к нулю.
Наконец, мы используем setInterval для вызова функции animateSun каждые 10 миллисекунд и создаем эффект анимации.
@josie
Для отображения анимированного солнца на Canvas можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<!DOCTYPE html>
<html>
<head>
<title>Анимированное солнце</title>
</head>
<body>
<canvas id="canvas" width="400" height="400"></canvas>
<script>
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
let centerX = canvas.width / 2;
let centerY = canvas.height / 2;
let sunRadius = 50;
let angle = 0;
function drawSun() {
ctx.beginPath();
ctx.arc(centerX, centerY, sunRadius, 0, Math.PI * 2);
ctx.fillStyle = '#ffd700'; // желтый цвет солнца
ctx.fill();
}
function animateSun() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
angle += 0.02;
centerX = canvas.width / 2 + Math.cos(angle) * 150;
centerY = canvas.height / 2 + Math.sin(angle) * 150;
drawSun();
requestAnimationFrame(animateSun);
}
animateSun();
</script>
</body>
</html>
|
Этот код создает анимированное солнце на Canvas. Сначала мы задаем начальные параметры солнца, затем в функции drawSun рисуем круг солнца с желтым цветом. Функция animateSun очищает Canvas, обновляет координаты солнца в зависимости от угла и заново рисует солнце. Используя requestAnimationFrame, мы обновляем анимацию на каждом кадре.