(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. CSS:IE,Chrome,Firefox兼容性和CSS Hack(转载)

    原作者:微米博客 以前写过一篇关于CSS hack的文章,但近期回头看了看发现理解的不够深刻,总结的也不凝练,于是今天重新测试从新写一篇.常用的CSS hack如下(笔者只对IE&FF& ...

  2. hihoCoder #1161 八卦的小冰

    题目大意 考虑一个由 $n$ 个人构成的社交网络,其中任意两人都有一个用非负整数表示的亲密度. 初始时给出 $m$ 对人的亲密度,其余的亲密度为 $0$ . 定义此社交网络的「八卦度」为异性之间的亲密 ...

  3. webpack打包字体图标报错的解决办法

    webpack打包字体图标需要两个加载器  url-loader 和 file-loader 另外  字体图标的引入方式  本来应该是  url("....") 这样的方式,但是w ...

  4. FZOJ 2102 Solve equation

                                                                                                        ...

  5. FNV哈希算法【转】

    转自:http://blog.csdn.net/hustfoxy/article/details/23687239 由来:FNV哈希算法全名为Fowler-Noll-Vo算法,是以三位发明人Glenn ...

  6. 反汇编角度->C++ const

    #include<iostream> #include<stdlib.h> using namespace std; const int &add( const int ...

  7. Android Studio 快捷键整理分享-SadieYu

    文章编辑整理:Android Studio 中文组 - SadieYu Alt+回车 导入包,自动修正 Ctrl+N   查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L  格式化代码 ...

  8. C#连接OleDBConnection数据库的操作

    对于不同的.net数据提供者,ADO.NET采用不同的Connection对象连接数据库.这些Connection对我们屏蔽了具体的实现细节,并提供了一种统一的实现方法. Connection类有四种 ...

  9. JSONP简单示例

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head>    < ...

  10. 洛谷—— P1503 鬼子进村

    https://www.luogu.org/problemnew/show/P1503 题目背景 小卡正在新家的客厅中看电视.电视里正在播放放了千八百次依旧重播的<亮剑>,剧中李云龙带领的 ...