canvas圆周动画

2024-02-19 16:38
文章标签 canvas 动画 圆周

本文主要是介绍canvas圆周动画,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

圆周运动

JavaScript code
?
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<!DOCTYPE html>
<html>
<head lang= "en" >
     <meta charset= "UTF-8" >
     <title></title>
</head>
<body>
<canvas width= "600"  height= "600"  id= "race"  style= "border:1px solid red;" ></canvas>
<script>
     var  race = document.getElementById( 'race' );
     var  cxt = race.getContext( '2d' );
     var  ang = 0;
     var  speed = 1;
     var  sAng = 0;
     function  draw() {
         cxt.save();
         cxt.translate(300, 300);
         cxt.save();
         cxt.beginPath();
         cxt.fillStyle =  '#CCA548' ;
         cxt.arc(0, 0, 220, 0, 360*Math.PI/180,  false );
         cxt.fill();
         cxt.closePath();
         cxt.restore();
         cxt.save();
         cxt.beginPath();
         cxt.fillStyle =  'white' ;
         cxt.arc(0, 0, 200, 0, 360*Math.PI/180,  false );
         cxt.fill();
         cxt.closePath();
         cxt.restore();
         cxt.save();
         cxt.rotate(ang*Math.PI/180);
         ang += speed;
         //speed += 1;
         cxt.fillStyle =  '#CDC9A5' ;
         cxt.fillRect(210, -40, 40, 80);
         cxt.strokeRect(210, -40, 40, 80);
         cxt.fillStyle =  'white' ;
         cxt.fillRect(230, -20, 10, 10);
         cxt.fillRect(230, 10, 10, 10);
         cxt.save();
         cxt.translate(210, -20);
         cxt.fillStyle =  '#000' ;
         cxt.beginPath();
         cxt.arc(0, 0,10, 0, 360*Math.PI/180,  false );
         cxt.fill();
         cxt.closePath();
         cxt.fillStyle =  'white' ;
         cxt.beginPath();
         cxt.arc(0, 0, 2, 0, 360*Math.PI/180,  false );
         cxt.fill();
         cxt.closePath();
         cxt.save();
         if (sAng > 360){
             sAng = 0;
         }
         cxt.rotate(sAng*Math.PI/180);
         sAng += 4;
         cxt.strokeStyle =  'white' ;
         cxt.strokeRect(-5*Math.sqrt(2), -5*Math.sqrt(2), 10*Math.sqrt(2), 10*Math.sqrt(2));
         cxt.restore();
         cxt.restore();
         cxt.save();
         cxt.translate(210, 20);
         cxt.fillStyle =  '#000' ;
         cxt.beginPath();
         cxt.arc(0, 0,10, 0, 360*Math.PI/180,  false );
         cxt.fill();
         cxt.closePath();
         cxt.save();
         cxt.rotate((sAng+45)*Math.PI/180);
         cxt.strokeStyle =  'white' ;
         cxt.strokeRect(-5*Math.sqrt(2), -5*Math.sqrt(2), 10*Math.sqrt(2), 10*Math.sqrt(2));
         cxt.restore();
         cxt.restore();
         cxt.beginPath();
         cxt.arc(210, 20, 2, 0, 360*Math.PI/180,  false );
         cxt.fill();
         cxt.closePath();
         cxt.restore();
         cxt.restore();
     }
     //draw();
     function  animate() {
         cxt.clearRect(0, 0, 600, 600);
         draw();
         requestAnimationFrame(animate);
     }
     requestAnimationFrame(animate);
</script>
</body>
</html>

这篇关于canvas圆周动画的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/725263

相关文章

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

使用WPF实现窗口抖动动画效果

《使用WPF实现窗口抖动动画效果》在用户界面设计中,适当的动画反馈可以提升用户体验,尤其是在错误提示、操作失败等场景下,窗口抖动作为一种常见且直观的视觉反馈方式,常用于提醒用户注意当前状态,本文将详细... 目录前言实现思路概述核心代码实现1、 获取目标窗口2、初始化基础位置值3、创建抖动动画4、动画完成后

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

基于Canvas的Html5多时区动态时钟实战代码

《基于Canvas的Html5多时区动态时钟实战代码》:本文主要介绍了如何使用Canvas在HTML5上实现一个多时区动态时钟的web展示,通过Canvas的API,可以绘制出6个不同城市的时钟,并且这些时钟可以动态转动,每个时钟上都会标注出对应的24小时制时间,详细内容请阅读本文,希望能对你有所帮助...

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主

Qt QWidget实现图片旋转动画

《QtQWidget实现图片旋转动画》这篇文章主要为大家详细介绍了如何使用了Qt和QWidget实现图片旋转动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、效果展示二、源码分享本例程通过QGraphicsView实现svg格式图片旋转。.hpjavascript

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。