返回顶部
首页 > 资讯 > 精选 >JavaScript结合Canvas如何绘画画运动小球
  • 557
分享到

JavaScript结合Canvas如何绘画画运动小球

2023-06-29 16:06:28 557人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关javascript结合canvas如何绘画画运动小球的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.实现思路首先为了达到我们想要的效果,可以先创建一个构造函数。给构造函数添加对应的属

这篇文章给大家分享的是有关javascript结合canvas如何绘画画运动小球的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

1.实现思路

  • 首先为了达到我们想要的效果,可以先创建一个构造函数。

  • 给构造函数添加对应的属性和方法。

  • 实例化出多个对象,并且保存在数组中。

  • 遍历每个对象,实现画圆。

  • 间隔修改每个球的x,y值。

先准备画布确定对应的宽高:

<canvas id="canvas" width="400" height="400"></canvas><script>    let canvas = document.getElementById('canvas');    let ctx = canvas.getContext('2d');    let maxWidth = canvas.width,        maxHeight = canvas.height;        ctx.fillStyle = '#000';        ctx.fillRect(0, 0, maxWidth, maxHeight);</script>

因为是随机运动,所以要创建一个获取随机数的方法:

function getRandomNum(minNum, maxNum) {    switch (arguments.length) {        case 1:            return Math.round(Math.random() * minNum + minNum);            break;        case 2:            return Math.round(                Math.random() * (maxNum - minNum) + minNum);            break;        case 0:            return 0;            break;    }}// 创建一个Ball的构造函数    function Ball(maxWidth, maxHeight, ctx) {        this.ctx = ctx;        this.maxWidth = maxWidth;        this.maxHeight = maxHeight;        // 随机半径        this.r = getRandomNum(5, 15);        // 随机x,y坐标        this.x = getRandomNum(this.r, this.maxWidth - this.r);        this.y = getRandomNum(this.r, this.maxHeight - this.r);        // 平移速度,正负区间是为了移动方向多样        this.speedX = getRandomNum(-2, 2);        this.speedY = getRandomNum(-2, 2);        // 颜色随机        this.color = `rgba(${getRandomNum(0, 255)},        ${getRandomNum(0, 255)},        ${getRandomNum(0, 255)},${Math.random()})`;    }    Ball.prototype = {        draw: function () {            ctx.beginPath();            ctx.fillStyle = this.color;            ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2);            ctx.fill();            ctx.closePath();        },        move: function () {            // 判断边界值,让圆球始终保证在画面内            if (this.x > this.maxWidth - this.r || this.x < this.r) {                this.speedX = -this.speedX;            }            if (this.y > this.maxHeight - this.r || this.y < this.r) {                this.speedY = -this.speedY;            }            this.x += this.speedX;            this.y += this.speedY;        }    };    // 创建100个Ball实例    let balls = [];    for (let i = 0; i < 100; i++) {        let newBall = new Ball(maxWidth, maxHeight, ctx);        newBall.draw();        balls.push(newBall);    }

2.静态效果

现在我们画出了不同半径和颜色的静止圆球:

JavaScript结合Canvas如何绘画画运动小球

调用move方法,间隔修改每个球的x,y值。

setInterval(() => {    // 每次画之前都要清除画布    ctx.clearRect(0, 0, maxWidth, maxHeight);    ctx.fillStyle = '#000';    ctx.fillRect(0, 0, maxWidth, maxHeight);    for (let j = 0; j < 100; j++) {        balls[j].draw(ctx);        balls[j].move();    }}, 100);

效果展示:

JavaScript结合Canvas如何绘画画运动小球

感谢各位的阅读!关于“JavaScript结合Canvas如何绘画画运动小球”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: JavaScript结合Canvas如何绘画画运动小球

本文链接: https://lsjlt.com/news/325836.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript结合Canvas绘画画运动小球
    目录1.实现思路2.静态效果3.总结前言: canvas是HTML5新增的元素,也被称为画布,可以结合javascript实现绘制各种图形,制作各种炫酷的动画效果,现在我们也来使用c...
    99+
    2024-04-02
  • JavaScript结合Canvas如何绘画画运动小球
    这篇文章给大家分享的是有关JavaScript结合Canvas如何绘画画运动小球的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.实现思路首先为了达到我们想要的效果,可以先创建一个构造函数。给构造函数添加对应的属...
    99+
    2023-06-29
  • JavaScript canvas实现水球加载动画
    本文实例为大家分享了canvas实现水球加载动画的具体代码,供大家参考,具体内容如下 效果展示: 源码展示: <!doctype html> <html> ...
    99+
    2024-04-02
  • Android动画之小球拟合动画的示例分析
    这篇文章给大家分享的是有关Android动画之小球拟合动画的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Android动画之小球拟合动画实例实现效果:动画组成:通过三阶贝塞尔曲线来拟合圆,拟合系数的由来...
    99+
    2023-05-31
    android
  • JavaScript canvas怎么实现水球加载动画
    这篇文章主要讲解了“JavaScript canvas怎么实现水球加载动画”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript canvas怎么实现水球加载...
    99+
    2023-06-30
  • JavaScript仿小米如何实现球体分解动画
    这篇文章主要讲解了“JavaScript仿小米如何实现球体分解动画”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript仿小米如何实现球体分解动画”吧!演示用过小米手机的应该见过...
    99+
    2023-07-02
  • p5.js如何实现小球动画
    这篇文章主要介绍p5.js如何实现小球动画,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、运动的小球本节将用p5.js做一个在屏幕上运动的小球。思路是用变量记录小球的位置,然后在d...
    99+
    2024-04-02
  • CSS如何实现小球抛物线运动的动画效果
    这篇文章将为大家详细讲解有关CSS如何实现小球抛物线运动的动画效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   一个物体实现抛物线运动,物理上是将物体分为水平运动...
    99+
    2024-04-02
  • JavaScript仿小米实现球体分解动画
    目录演示技术栈源码演示 用过小米手机的应该见过这个动画 它这个球体会随着垃圾的清理被例子画分解 随着这个思路我们给他改造一下实现这种效果 技术栈 首先我们使用了一些好用的js脚本...
    99+
    2024-04-02
  • CSS3如何实现弹跳的小球动画
    小编给大家分享一下CSS3如何实现弹跳的小球动画,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这个案例关键点在于小球弹跳的节奏感和布局定位。一、案例知识点相对和绝...
    99+
    2023-06-08
  • jQuery如何实现小球点击发射动画
    小编给大家分享一下jQuery如何实现小球点击发射动画,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!花了两个小时使用jQuery写了一个小动画游戏,如下图所示,通过鼠标点击,发射球。代码:<!DOCTYPE ...
    99+
    2023-06-26
  • C语言如何实现弹跳小球动画
    这篇文章主要介绍了C语言如何实现弹跳小球动画的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言如何实现弹跳小球动画文章都会有所收获,下面我们一起来看看吧。一、项目描述和最终成果展示项目描述:  一个...
    99+
    2023-06-30
  • uniapp 如何实现canvas动画
    随着移动端应用的不断发展,动画已经成为了现代应用的必备元素。而canvas作为HTML5中提供的一种绘图技术,被广泛应用于实现各种复杂的动画效果。而今,随着uniapp的流行,我们也可以借助uniapp的强大能力,轻松实现canvas动画效...
    99+
    2023-05-22
  • canvas如何实现粒子动画
    本篇内容主要讲解“ canvas如何实现粒子动画”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ canvas如何实现粒子动画”吧!代码如下:<!DOCTY...
    99+
    2024-04-02
  • JS如何实现画圆圈的小球
    小编给大家分享一下JS如何实现画圆圈的小球,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果图 图(1)图(2)代码如...
    99+
    2024-04-02
  • css3如何实现小球滚动和js控制动画暂停
    这篇文章给大家分享的是有关css3如何实现小球滚动和js控制动画暂停 的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。CSS3 可以创建动画,它可以取代许多网页动画图像、Flas...
    99+
    2024-04-02
  • 如何实现HTML5 Canvas旋转动画
    本篇内容介绍了“如何实现HTML5 Canvas旋转动画”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果...
    99+
    2024-04-02
  • html5如何绘制矩形动画
    这篇文章给大家分享的是有关html5如何绘制矩形动画的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   让我们来看一下Canvas内置的简单几何图形 &mdash; 矩...
    99+
    2024-04-02
  • HTML中如何实现一个canvas智绘画板
    这篇文章主要介绍了HTML中如何实现一个canvas智绘画板,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 一、项目介绍名称:智绘画板技术栈:HTML5,CSS3,...
    99+
    2023-06-09
  • canvas如何实现粒子喷泉动画
    今天小编给大家分享一下canvas如何实现粒子喷泉动画的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作