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代表一个字符, ...

java随机星星怎么闪_canvas画随机闪烁的星星相关推荐

  1. java实现随机动画_Java课程设计画随机圆.doc

    Java课程设计画随机圆 滁州学院 课程设计报告 课程名称: Java 面向对象程序设计 设计题目: 画随机圆 系 别: 计算机信息与工程学院 专 业: 计算机科学与技术 组 别: 第五小组 起止日期 ...

  2. java闪屏怎么制作,Java Swing创建自定义闪屏:在闪屏下画进度条(一)

    Java Swing创建自定义闪屏:在闪屏上画进度条(一) 由于本人十分热爱Java Swing,所以平时闲暇之余总是喜欢极尽所能去搜藏一些自认为比较"酷"的Swing代码来研究揣 ...

  3. 用java在画布中绘制六个随机英文字母

    用java在画布中绘制六个随机英文字母,颜色,位置随机. package test; import java.awt.Canvas; import java.awt.Color; import jav ...

  4. java long 随机 正数_java中如何产生随机正负数

    本问题已经有最佳答案,请猛点这里访问. 我正在尝试在基本数据类型short的范围内生成随机整数(-3276832767).Java随机对象只生成正数.我该如何在那个时间间隔内随机创建数字呢?谢谢. 这 ...

  5. java——随机口算题(加减乘除随机)

    java--随机口算题(加减乘除随机) import java.util.Scanner; public class jisuan {static int wrongnumber=0;public s ...

  6. Java篇 - 随机数的原理、伪随机和优化

    这篇来说说Java中的随机数,以及为什么说随机数是伪随机. 目录: Math.random() Random类 伪随机 如何优化随机 封装的一个随机处理工具类 1. Math.random() 1.1 ...

  7. java线程画动图闪,Android中利用画图类和线程画出闪烁的心形,android心形,package com....

    Android中利用画图类和线程画出闪烁的心形,android心形,package com.package com.tt.view;import android.content.Context;imp ...

  8. 随机森林计算特征重要性_随机森林中计算特征重要性的3种方法

    随机森林计算特征重要性 The feature importance describes which features are relevant. It can help with a better ...

  9. 自回避随机行走问题 c语言,醉汉随机行走/随机漫步问题(Random Walk Randomized Algorithm Python)...

    世界上有些问题看似是随机的(stochastic),没有规律可循,但很可能是人类还未发现和掌握这类事件的规律,所以说它们是随机发生的. 随机漫步(Random  Walk)是一种解决随机问题的方法,它 ...

最新文章

  1. initrd映像文档的作用和制作
  2. shell变量设置与显示
  3. 【转】流言终结者:Windows系统与Linux系统之间的8个流言
  4. 1vmware中的centos7配置静态变量
  5. 通俗易懂的泰勒展开微积分推导过程
  6. Angular前端事件处理函数的形参名必须为某个硬编码值的怪事
  7. Kafka中@KafkaListener如何动态指定多个topic
  8. 阿里云发布ET奥运大脑,推进奥运进入数字时代
  9. html5移动端海报制作,H5制作利器,教你分分钟制作高/大/上H5海报!
  10. 嵌入式实操----基于RT1170 首板硬件之CAN BUS TJA1043显示调试(十八)
  11. ehvierwer登录与不登录_自媒体账号管理神器,多个平台同时登录,给你不一样的感觉...
  12. E9000刀片服务器维护记录
  13. 视频号账号定位怎么做?如何做微信视频号定位
  14. 创建阿里云服务器并实现疫情地图可视化
  15. vue2.0分页插件官方_Vue 2的最佳和完整分页插件
  16. RGB 转换为灰度图、二值化图
  17. 去掉最高分最低分求平均分
  18. 你应该知道的6个GameFi机制
  19. ubuntu 20.04 | 常用软件 必要配置
  20. Springboot应用中过滤器chain.doFilter后设置header无效

热门文章

  1. 如何在vue-router的beforeEach钩子里做页面访问权限验证
  2. java多线程 生产者消费者_java多线程之生产者消费者经典问题 - 很不错的范例
  3. c语言插入特定的字符串,C语言实现:将一个字符串插入到另一个字符串的指定位置...
  4. ios开发读取剪切板的内容_为你找到3款Mac平台好用的剪切板工具,你值得拥有!...
  5. 使用scrum开发软件的一般过程是什么?_黑色灌封胶的使用工艺复杂吗?使用过程中应该注意什么?...
  6. 蚂蚁算法求解tsp问题matlab,蚁群算法解决TSP问题的MATLAB程序
  7. 深度学习之基于卷积神经网络(VGG16)实现性别判别
  8. [蓝桥杯][算法提高]和谐宿舍2(记忆化搜索)
  9. TCP文件上传Java_java 基于TCP协议的文件上传
  10. ROS2学习(十六).ROS概念 - 构建系统