@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, мы обновляем анимацию на каждом кадре.