(function(a){
a.fn.starBg=function(p){
var p=p||{}; var w_w=p&&p.window_width?p.window_width:"500";
var w_h=p&&p.window_height?p.window_height:"400";
var w_b=p&&p.window_background?p.window_background:"#000";
var s_c=p&&p.star_count?p.star_count:"600";
var s_color=p&&p.star_color?p.star_color:"#FFF";
var s_d=p&&p.star_depth?p.star_depth:"250";
var dom=a(this);
var fov = parseInt(s_d);
var SCREEN_WIDTH = parseInt(w_w);
var SCREEN_HEIGHT = parseInt(w_h);
var HALF_WIDTH = SCREEN_WIDTH/2;
var HALF_HEIGHT = SCREEN_HEIGHT/2;
var c_id = dom.attr("id");
var numPoints = s_c;
dom.attr({ width: w_w, height: w_h});
setup(); function setup()
{
function draw3Din2D(point3d)
{
x3d = point3d[0];
y3d = point3d[1];
z3d = point3d[2];
var scale = fov/(fov+z3d); // if(scale > 3){
// scale = (scale-3)*0.3>3?(scale-3)*0.3*0.3:(scale-3)*0.3;
//
// }
var x2d = (x3d * scale) + HALF_WIDTH;
var y2d = (y3d * scale) + HALF_HEIGHT; c.lineWidth= scale;
c.strokeStyle = s_color;
c.beginPath();
c.moveTo(x2d,y2d);
c.lineTo(x2d+scale*0.5,y2d);
c.closePath();
c.stroke(); } var canvas = document.getElementById(c_id);
var c = canvas.getContext('2d'); var points = []; function initPoints()
{
for (i=0; i<numPoints; i++)
{
point = [(Math.random()*400)-200, (Math.random()*400)-200, (Math.random()*400)-200 ];
points.push(point); } } function render()
{ c.fillStyle=w_b;
c.fillRect(0,0, SCREEN_WIDTH, SCREEN_HEIGHT); for (i=0; i<numPoints; i++)
{
point3d = points[i]; z3d = point3d[2];
z3d-=1;
if(z3d<-fov){
z3d +=400; }
point3d[2] = z3d; draw3Din2D(point3d); } } initPoints(); var loop = setInterval(function(){
render();
}, 30); } }
})(jQuery);
    $("#stars").starBg({
window_width: $(document).width(),
window_height: $(document).height(),
window_background: '#000000',
star_count: '500',
star_color: '#fff',
star_depth: '100'
});

依赖Jquery

canvas 星空插件的更多相关文章

  1. canvas星空背景特效+CSS旋转相册学习

    今天在看帖子的时候,看到了个有趣的css旋转相册,刚好之前做了一个星空背景dome,这里给大家分享下代码: 旋转相册参考:https://blog.csdn.net/gitchatxiaomi/art ...

  2. js封装成插件-------Canvas统计图插件编写

    之前就说过,我想写一个canvas画统计图的插件,现在写好了 先说下实现的功能吧: 1.可以通过自定义X轴坐标属性和Y轴坐标属性按比例画出统计图 2.可以选择画折现图还是柱形统计图,或者两者都实现 3 ...

  3. canvas星空和图形变换

    图形变换. 一.画一片星空 先画一片canvas.width宽canvas.height高的黑色星空,再画200个随机位置,随机大小,随机旋转角度的星星. window.onload=function ...

  4. HTML5 CANVAS 弹幕插件

    概述 修改了普通弹幕运动的算法,新增了部分功能 详细 代码下载:http://www.demodashi.com/demo/10595.html 修改了普通弹幕运动的算法,新增了部分功能,具体请参看附 ...

  5. 开源造轮子:一个简洁,高效,轻量级,酷炫的不要不要的canvas粒子运动插件库

    一:开篇 哈哈哈,感谢标题党的莅临~ 虽然标题有点夸张的感觉,但实际上,插件库确实是简洁,高效,轻量级,酷炫酷炫的咯.废话不多说,先来看个标配例子吧: (codepen在线演示编辑:http://co ...

  6. konva canvas插件写雷达图示例

    最近,做了一个HTML5的项目,里面涉及到了雷达图效果,这里,我将react实战项目中,用到的雷达图单拎出来写一篇博客,供大家学习. 以下内容涉及的代码在我的gitlab仓库中:Konva canva ...

  7. 13个JavaScript图表(JS图表)图形绘制插件【转】

    现在网络上又有越来越多的免费的(JS 图表)JavaScript图表图形绘制插件.我之前给一家网站做过复杂的图形,我们用的是 highchart.在那段时间,没有很多可供选择的插件.但现在不同了,很容 ...

  8. canvas剪裁图片并上传,前端一步到位,无需用到后端

    背景: 当前主流的图片剪裁主要有两种实现方式. 1:flash操作剪裁.2:利用js和dom操作剪裁. 目前看来这个剪裁主要还是先通过前端上传图片到服务器,然后前端操作后把一些坐标和大小数据传到后台, ...

  9. 关于canvas中的jquery

    关于h5,相比前端的同事们都很了解了吧!h5里面有个canvas,现在用的蛮火.但是canvas里面的代码确实是有点繁多,特别是要对于图形做什么操作的时候...我昨天无意间发现了一个canvas的插件 ...

随机推荐

  1. 【Luogu】P1486郁闷的出纳员(Splay)

    题目链接 名副其实的调了一下午…… 每做一道题都是对我那不规范的Splay代码的刀刻斧凿一般的修正啊…… Splay.如果有一批员工不干了,那就找还能干的薪水最少的员工,把它splay到根,删除它的左 ...

  2. IBM DB2 控制中心等图形工具在 Windows 下的字体设置

    原文地址(直接看原文): http://loveseaside.iteye.com/blog/648941 [简介如下] IBM DB2 在版本 8.0 以上就提供了一个跨平台的基于 Java 的一套 ...

  3. 谷歌Chrome 27测试版已经发布 更快的浏览速度

    谷歌已经发布了Chrome 27测试版浏览器,为普通用户带来了大约提升为5%的网页浏览速度.用户已经可以在Chrome测试网页下载到最新的更新了.我们已经对这版更新做了一个全面的快速测试,让我们看看究 ...

  4. 解决 unresolved external symbol 无法解析 _send@16(转)

    (1) vc网络编程中遇到一个编译问题,原来是少了WSOCK32.LIB. 在 project-->settings-->Link-->Object/Library modules ...

  5. 标准C程序设计七---104

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  6. 在 Ubuntu 下使用 com port, serial port

    1. Install putty 2. Insert serial-to-usb converter cable converter to NB or PC 3. check converter un ...

  7. py2exe使用方法 (含一些调试技巧,如压缩email 类)

    http://justcoding.iteye.com/blog/900993 一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样, ...

  8. What is pseudopolynomial time? How does it differ from polynomial time?

    To understand the difference between polynomial time and pseudopolynomial time, we need to start off ...

  9. 小程序 之登录 wx.login()

    小程序的登录关键在于使用wx.login()方法后,要到取到code值传到后台, 再用小程序平台本帐号生成的appid+addsecret+code去微信接口服务取得用户唯一标识后即可登录[注意:此步 ...

  10. HDU 1969 Pie【二分】

    [分析] “虽然不是求什么最大的最小值(或者反过来)什么的……但还是可以用二分的,因为之前就做过一道小数型二分题(下面等会讲) 考虑二分面积,下界L=0,上界R=∑ni=1nπ∗ri2.对于一个中值x ...