java随机星星怎么闪_canvas画随机闪烁的星星

canvas画一颗星星:

规则的星星有内切圆和外切圆,每两个点之间的角度是固定的,因此可得到星星的每个点的坐标,画出星星。

function drawStars(x,y,radius1,radius2,num,drawType,color){

var angle = 360/(num*2);

var arr = [];

for(var i=0;i

var starObj = {};

if(i%2==0){

starObj.x = x+radius1*Math.cos(i*angle*Math.PI/180);

starObj.y = y+radius1*Math.sin(i*angle*Math.PI/180);

}else{

starObj.x = x+radius2*Math.cos(i*angle*Math.PI/180);

starObj.y = y+radius2*Math.sin(i*angle*Math.PI/180);

}

arr.push(starObj);

}

cxt.beginPath();

cxt.fillStyle=color;

cxt.strokeStyle = color;

cxt.moveTo(arr[0].x,arr[0].y);

for(var i=1;i

cxt.lineTo(arr[i].x,arr[i].y);

}

cxt.closePath();

if(drawType=="fill"){

cxt.fill();

}else{

cxt.stroke();

}

}

给星星添加随机属性:

var starArr=[]; //多个星星对象

for(var i=0;i<5;i++){

var starObj={

radius1:10+5*Math.random(),

radius2:2+4*Math.random(),

x:30+(canvas.width-60)*Math.random(),

y:30+(canvas.height-60)*Math.random(),

num:4,

angle:360*Math.random(),

changeAngle:-5+10*Math.random(),

color:"rgb("+parseInt(255*Math.random())+","+parseInt(255*Math.random())+","+parseInt(255*Math.random())+")"

}

starArr.push(starObj);

}

随机产生星星并添加动画(闪烁、旋转等):

setInterval(function(){

cxt.clearRect(0,0,500,500);

for(var i=0;i

starArr[i].angle+=starArr[i].changeAngle;

cxt.save();

cxt.beginPath();

cxt.translate(starArr[i].x, starArr[i].y);

cxt.rotate(starArr[i].angle * Math.PI / 180);

cxt.scale(Math.sin(starArr[i].angle * Math.PI / 180), Math.sin(starArr[i].angle * Math.PI / 180));

cxt.globalAlpha = Math.abs(Math.sin(starArr[i].angle * Math.PI / 180));

drawStars(0,0,starArr[i].radius1, starArr[i].radius2, starArr[i].num, "fill", "white");

cxt.restore();

}

},30);

到此,随机产生有动画的星星就完了。

下面还补充点,当我在angular中使用canvas画星星时,我的做法时window.οnlοad=function(canvas()),FF等均正常,在IE9中报错,canvas.getContext('2d')为null,不知道是什么原因,我在directive中用canvas,canvas.getContext('2d')不为null,但是没法画出星星,没找到原因,最后曲线救国。。在canvas下加了个隐藏的图片,图片的onload执行canvas(),够曲折的方法,如果有更好的方法或是知道原因的,欢迎留言提供,不甚感激。

canvas画随机的四位验证码

效果图如下:

使用javascript和canvas画月半弯

使用javascript和canvas画月半弯,月半弯好浪漫!浏览器须支持html5 查看效果:http://keleyi.com/a/bjad/8xqdm0r2.htm 以下是代码:

樱花的季节,教大家用canvas画出飞舞的樱花树

又到了樱花的季节,教大家使用canvas画出飞舞的樱花树效果. 废话少说,先看效果. 演示效果地址:http://suohb.com/work/tree4.htm 查看演示效果 第一步,我们先画出一棵 ...

撩妹技能 get,教你用 canvas 画一场流星雨

开始 妹子都喜欢流星,如果她说不喜欢,那她一定是一个假妹子. 现在就一起来做一场流星雨,用程序员的野路子浪漫一下. 要画一场流星雨,首先,自然我们要会画一颗流星. 玩过 canvas 的同学,你画圆画 ...

canvas 画圈 demo

html代码:

踩个猴尾不容易啊 Canvas画个猴子

踩个猴尾不容易啊  Canvas画个猴子

Canvas画椭圆的方法

虽然标题是画椭圆,但是我们先来说说Canvas中的圆 相信大家对于Canvas画圆都不陌生   oGC.arc(400, 300, 100, 0, 2*Math.PI, false); 如上所示,直接 ...

随机推荐

Java基础-ArrayList和LinkedList的区别

大致区别:  1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为Lin ...

Leetcode&colon; Data Stream as Disjoint Intervals &amp&semi;&amp&semi; Summary of TreeMap

Given a data stream input of non-negative integers a1, a2, ..., an, ..., summarize the numbers seen ...

&period;NET开源工作流RoadFlow-系统布署及注意事项

非常感谢您在百忙之中抽空来了解RoadFlow,下面我们说一下如果在自己本地搭建环境吧. 1.环境要求 数据库:sqlserver2005以上版本.服务器:IIS6.0以上,或iisexpress.d ...

UI:自定义键盘的实现

自定义我的封装键盘,并在试图控制器里对接 (解决多 输入框问题,把输入框存入到可变数组) @implementation AppDelegate - (BOOL)application:(UIAppl ...

bootstrap&plus;masonry&period;js写瀑布流

最近在用bootstrap写一个网站,其中有个图文展示的页面要用到瀑布流的效果.因为项目要求,项目要以bootstrap为基准,不准私自添加内联样式.内部样式,所以,自己写瀑布流就不行了,所以,根据要 ...

Unity进阶----Lua语言知识点&lpar;2018&sol;11&sol;08&rpar;

国内开发: 敏捷开发: 集中精力加班堆出来第一个版本 基本没啥大的bug 国外开发: 1).需求分析: 2).讨论 3).分模块 4).框架 5).画UML图(类图class function)(e- ...

好用的漂浮广告 jquery

这是我之前准备找工作时看一书做的笔记,都是一些笔试面试中常考的重点难点问题,但比较基础,适合初学者看. 1. char c = '\72'; 中的\72代表一个字符, ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 四种内存_不可访问内存 Java四种引用包括强引用,软引用,弱引用,虚引用...

小结&#xff1a;1、不可访问内存是指一组没有任何可访问指针指向的由计算机程序进行动态分配的内存块。2、垃圾收集器能决定是否一个对象还是可访问的&#xff1b;任何被确定不可访问的对象将会被释放。https://zh.wikipedia.org/wiki/不可访问内存在计算机科学中&#xff0c;…

python async_python async with和async for的使用

网上async with和async for的中文资料比较少&#xff0c;我把PEP 492中的官方陈述翻译一下。异步上下文管理器”async with”异步上下文管理器指的是在enter和exit方法处能够暂停执行的上下文管理器。为了实现这样的功能&#xff0c;需要加入两个新的方法&#xff1a;__aenter_…

python将dataframe写入csv_Pandas dataframe数据写入文件和数据库

转自&#xff1a;http://www.dcharm.com/?p584Pandas是Python下一个开源数据分析的库&#xff0c;它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作,DataFrame是一张多维的表&#xff0c;大家可以把它想象成一张Excel表单或者Sql表。之前这篇文章已经介绍了从…

java字节输入与字符输入_Java中的字节输入出流和字符输入输出流

Java中的字节输入出流和字符输入输出流下面哪个流类属于面向字符的输入流( )A BufferedWriterB FileInputStreamC ObjectInputStreamD InputStreamReader解析&#xff1a;IO流(1)字节输入流基类&#xff1a;InputStreamFileInputStream、ByteArrayInputStream、PipedInputStrea…

java不同垃圾回收器_细述 Java垃圾回收机制→Types of Java Garbage Collectors

本文非原创&#xff0c;翻译自Types of Java Garbage Collectors在Java中为对象分配和释放内存空间都是由垃圾回收线程自动执行完成的。和C语言不一样的是Java程序员不需要手动写垃圾回收相关的代码。这是使得Java如此流行&#xff0c;同时也是Java能帮助程序员写出更好的Java应…

python控制流代码怎么用_Python学习笔记控制流的元素

随笔记录方便自己和同路人查阅。#------------------------------------------------我是可耻的分割线-------------------------------------------控制流语句的开始部分通常是‘’关键字‘、’“条件”&#xff0c;接下来是一个代码块&#xff0c;称为“子句”。在开始学习具…

js修改地址栏url_不同寻常的地址栏过渡

前几天&#xff0c;我在推特上看到这样一张图。原来地址栏还能这么玩&#xff0c;瞬间就觉得自己弱爆了。然后我决定去实现一下这个效果&#xff0c;然后做成一个库。画了一个晚上&#xff0c;终于做好了。这是最后的成果。这个库使用非常的简单。你只需要&#xff0c;yarn add…

linux php和java环境变量配置_Linux下Java环境变量的安装与配置

安装以JDK1.6.0_43为例增加可执行权限 chmod x jdk-6u43-linux-x64.bin&#xff0c;执行 ./jdk-6u43-linux-x64.bin 生成目录jdk1.6.0_43拷贝到/usr/share下&#xff0c;mv jdk1.6.0_43 /usr/share另外&#xff0c;jdk-6u43-linux-x64.bin将所有文件解压缩到当前目录的jdk$veri…

kaggle数据集_ArXiv170万篇论文数据集上线Kaggle!

大数据文摘出品学术圈的朋友对ArXiv肯定都不陌生。在将近30年的时间里&#xff0c;ArXiv通过公开访问学术文章为公众和研究社区提供了一个更高效的学术成果沟通平台&#xff0c;从物理学到计算机科学的许多子学科&#xff0c;以及介于两者之间的所有内容&#xff0c;包括数学&a…

java检测tomcat宕机_Tomcat意外宕机分析

之前在网上看过一篇文章&#xff0c;是讲Tomcat进程意外退出的&#xff0c;我看完感觉好奇&#xff0c;自己也测试了下&#xff0c;果然是有这种问题&#xff0c;所以自己也借此总结一下。先简单说下测试过程&#xff0c;先创建一个web服务启动 test.sh&#xff0c;内容如下&am…

万能驱动xp离线版_教你用SC封装软件来封装XP系统

今天我们来讲解一下如何用SC软件来封装XP系统。今天的讲解只演示基本的SC封装软件&#xff0c;具体的封装前的准备工具&#xff0c;我们不进行讲解&#xff0c;当然前期的准备工作也是有很多&#xff0c;首先我们先要安装虚拟机软件&#xff0c;并在虚拟机上面安装好原版的XP系…

java dispo lock_java实现文件上传和下载(1)

原理&#xff1a; 使用html 的 标签&#xff0c;提交form 的几个属性必须为&#xff1a; methodpost encTypemultipart/form-data;组件:smartUpload或者commons fileuploadsmartUpload代码实现1。文件预览function showImage(obj){var strobj.value;$("#id").html(&q…

剪板机自动上下料_机器人联轴器,用于机器人自动化上下料

关注点击蓝字&#xff0c;关注我吧纤薄型机器人联轴器&#xff0c;可搬运重量范围从 1kg 至 1,000kg&#xff0c;用于高效机器人自动化机床上下料&#xff0c;多年来受到广泛认可。紧凑型微型联轴器适合于最近迅速发展的小型机器人应用领域。无人操作时工艺可靠性高模块的特殊混…

java 格式化 布尔型_Java基础篇(1)-格式化

本文目录&#xff1a;十进制数字格式化——DecimalFormat数字格式化基类——NumberFormat字符串格式化类——String.format()Linux输出格式化——printf1. 十进制数字格式化(DecimalFormat)decimal是对数字进行格式化&#xff0c;比如取2位小数&#xff0c;这是最常见的。Java提…

python3手机脚本教学_python+adb命令实现自动刷视频脚本案例

python小白第一次发博客&#xff0c;自己自学了一下写了一个demo&#xff0c;可能语法啥的不够标准&#xff0c;毕竟没有真正学过python主要用到的是import os #os包用于运行cmd命令adb shell #这个有很多命令我们主要是模拟滑动直接看代码吧手机要先连接电脑打开usb调试模式# …

java关于泛型的实验代码_[改善Java代码]强制声明泛型的实际类型

Arrays工具类有一个方法asList可以把一个变长参数或数组变成列表,但是它有一个缺点:它所生成的List长度是不可改变的,而这在我们的项目开发中很不方便.importjava.util.Arrays;importjava.util.List;public classClient {public static voidmain(String[] args) {String[] strA…

一旦有辞职念头就干不长了吗_每天都有辞职不想上班的冲动,你有吗?

我从大学毕业到今天&#xff0c;工作的时间将近10年了。直到现在&#xff0c;我还经常有辞职的想法。我觉得现在职场真的不好混&#xff0c;不如意的事情十之八九&#xff0c;有了辞职冲动是非常正常的&#xff0c;不必一上来就刻意的否定&#xff0c;或者克制。依照我的职场经…

mysql 序号_脚本搭建Nginx、Redis、MySql、Maven

当你面对一个全新的Linux系统时&#xff0c;是如何部署搭建项目环境呢&#xff1f;是否是一个一个软件安装呢&#xff1f;小编在往期文章中介绍了相关软件的安装方法&#xff0c;但是你是否发现不同的软件安装下来是否会出现问题呢&#xff1f;今天就教大家如何使用脚本一键安装…

mysql数据库压缩备份_MySQL数据库之mysql数据库备份命令分享(mysql压缩数据库备份)...

本文主要向大家介绍了MySQL数据库之mysql数据库备份命令分享(mysql压缩数据库备份) &#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习MySQL数据库有所帮助。备份MySQL数据库的命令复制代码 代码如下:mysqldump -hhostname -uusername -ppassword databasename …

mysql数据库子查询的使用_MySQL数据库使用子查询方式更新数据优化及思考

【环境介绍】云数据库MySQL 5.7【背景描述】业务需要&#xff1a;需要对16370077的表数据进行更新部分数据操作UPDATE P_MOXXXX_REXXXX SET FISAVAILABLE 1 WHERE FREG_ID IN (SELECT FREG_ID FROM P_MOXXXX_REXXXX_UPDATE_TEMP);【按照正常流程更新数据操作】使用archery的SQ…