涌html编写星空图,canvas实现十二星座星空图

效果如下:

代码如下:

canvas星座

* {

margin: 0;

padding: 0;

}

#box{

margin:10px 0 0 10px;;

}

input{

outline: none;

font-size:16px;

}

p{

margin-bottom: 10px

}

input[type=date]{

height:36px;

text-indent:10px;

}

input[type=button]{

background:#3A92FF;

color:white;

border: none;

height:40px;

padding:0 10px;

margin-left: -2px;

}

#canvas{

margin-left:10px;

background-color: #000;

display: none;

}

请选择您的出生日期

你的浏览器不支持canvas

var box=document.getElementById('box');

var birth=document.getElementById('birth');

var btn=document.getElementById('btn');

var canvas=document.getElementById("canvas");

var ctx=canvas.getContext("2d");

var g1,date,timer;

ctx.font = "30px Courier New";

/*星座位置*/

var star={

"白羊座":[

[[0.30,0.78],[0.34,0.66],[0.28,0.48],[0.60,0.26],[0.65,0.20],[0.71,0.23],[0.70,0.32],[0.72,0.36]],

[ [0,1,2,3,4,5],[3,6,7]]

],

"天秤座":[

[[0.16,0.67],[0.34,0.60],[0.60,0.27],[0.75,0.23],[0.84,0.47],[0.63,0.74],[0.51,0.78]],

[[0,1,2,3,4,5,6]]

],

"摩羯座":[

[[0.78,0.21],[0.78,0.34],[0.75,0.45],[0.75,0.70],[0.69,0.78],[0.31,0.66],[0.22,0.49],[0.30,0.53],[0.53,0.54]],

[[0,1,2,3,4,5,6,7,8,1]]

],

"水瓶座":[

[[0.45,0.21],[0.37,0.35],[0.27,0.51],[0.30,0.58],[0.29,0.64],[0.48,0.79],[0.51,0.71],[0.58,0.68],[0.73,0.74],[0.43,0.53],[0.53,0.47]],

[[0,1,2,3,4,5,6,7,8],[2,9,10]]

],

"双鱼座":[

[[0.28,0.43],[0.28,0.53],[0.36,0.73],[0.43,0.78],[0.50,0.70],[0.53,0.62],[0.57,0.58],[0.63,0.43],[0.67,0.39],[0.74,0.39],[0.77,0.34],[0.72,0.30],[0.75,0.22],[0.23,0.50],[0.66,0.33]],

[[0,1,2,3,4,5,6,7,8,9,10,11,12],[0,13,1],[8,14,11]]

],

"金牛座":[

[[0.29,0.21],[0.39,0.36],[0.50,0.51],[0.50,0.57],[0.61,0.63],[0.77,0.71],[0.79,0.79],[0.22,0.43],[0.39,0.57],[0.60,0.71],[0.67,0.76]],

[[0,1,2,3,4,5,6],[7,8,3],[4,9,10]]

],

"双子座":[

[[0.18,0.37],[0.25,0.45],[0.35,0.55],[0.39,0.68],[0.49,0.77],[0.51,0.63],[0.57,0.78],[0.28,0.29],[0.42,0.32],[0.61,0.49],[0.72,0.60],[0.83,0.59],[0.69,0.75],[0.22,0.54],[0.35,0.43],[0.48,0.21]],

[[0,1,2,3,4],[2,5,6],[7,8,9,10,11],[9,12],[13,1,14,8,15]]

],

"巨蟹座":[

[ [0.16,0.39],[0.27,0.36],[0.52,0.49],[0.57,0.65],[0.83,0.78],[0.44,0.21]],

[[0,1,2,3,4],[2,5]]

],

"狮子座":[

[

[0.16,0.75],[0.23,0.67],[0.39,0.77],[0.71,0.53],[0.64,0.39],[0.55,0.37],[0.47,0.27],[0.54,0.24],[0.60,0.27],[0.85,0.56]],

[[0,1,2,3,4,5,6,7,8],[3,9]]

],

"处女座":[

[[0.16,0.59],[0.35,0.63],[0.44,0.70],[0.62,0.51],[0.77,0.46],[0.84,0.37],[0.60,0.42],[0.65,0.26],[0.34,0.75]],

[[0,1,2,3,4,5],[3,6,7],[2,8]]

],

"天蝎座":[

[[0.17,0.50],[0.28,0.63],[0.19,0.70],[0.28,0.78],[0.41,0.77],[0.49,0.72],[0.57,0.55],[0.59,0.44],[0.69,0.31],[0.74,0.21],[0.82,0.29],[0.79,0.44],[0.73,0.50],[0.38,0.47]],

[[0,1,2,3,4,5,6,7,8,9,10,11,12],[1,13],[8,11]]

],

"射手座":[

[[0.22, 0.66],[0.24,0.51],[0.45,0.40],[0.54,0.37],[0.59,0.43],[0.66,0.50],[0.63,0.60],[0.66,0.67],[0.74,0.53],[0.77,0.39],[0.49,0.47],[0.29,0.68],[0.30,0.78],[0.48,0.21],[0.52,0.27],[0.59,0.29]],

[[0,1,2,3,4,5,6,7,8,9],[2,10,11,12],[10,4],[13,14,15,3],[14,3]]

]

};

/*根据出生日期获取星座信息*/

function getStarSign(ts){

var d=new Date(ts),sign=d.getMonth()*100+d.getDate();

switch(true)

{

case sign<20:

return "摩羯座";

case sign<119:

return "水瓶座";

case sign<221:

return "双鱼座";

case sign<320:

return "白羊座";

case sign<421:

return "金牛座";

case sign<522:

return "双子座";

case sign<623:

return "巨蟹座";

case sign<723:

return "狮子座";

case sign<823:

return "处女座";

case sign<923:

return "天秤座";

case sign<1022:

return "天蝎座";

case sign<1122:

return "射手座";

default:

return "摩羯座";

}

}

/*绘制星座*/

function constellation(ctx,ary,w,h){

/*创建线条*/

var points=ary[0], lines=ary[1];

ctx.strokeStyle="#FFF";

var len=lines.length,i,ii,line,point;

ctx.beginPath();

while(len--)

{

i=1;

line=lines[len];

ii=line.length;

point=points[line[0]];

ctx.moveTo(point[0]*w,point[1]*h);

for(;i

point=points[line[i]];

ctx.lineTo(point[0]*w,point[1]*h);

}

}

ctx.stroke();

/*创建小圆*/

var cur;

i=0;

ii=points.length;

for(;i

cur=points[i];

new Circle(cur[0]*w,cur[1]*h).draw();//new出实例

}

}

/*创建小圆的构造函数*/

function Circle(x,y,r){

this.x=x;

this.y=y;

this.r=r||Math.round(Math.random()*8+4);

}

Circle.prototype={

draw:function(){

ctx.beginPath();

g1=ctx.createRadialGradient(this.x,this.y,Math.round(Math.random()*1+1),this.x,this.y,Math.round(Math.random()*3+6));

g1.addColorStop(0,'rgba(255,255,255,.9)');

g1.addColorStop(1,'rgba(0,0,0,.1)');

ctx.arc(this.x,this.y,this.r,0,Math.PI*2,true);

ctx.fillStyle =g1;

ctx.closePath();

ctx.fill();

return this;

}};

/*点击‘展示我的星空图'按钮*/

btn.οnclick=function(e){

clearInterval(timer);

e.preventDefault();

if (!birth.value){

alert("请选择您的出生日期");

}else{

canvas.style.display="block";

date = new Date(birth.value.replace(/-/g,'/')).getTime();

timer=setInterval(function(){

ctx.clearRect(0,0,canvas.width,canvas.height);

ctx.strokeText(getStarSign(date), 50, 50);

constellation(ctx,star[getStarSign(date)],canvas.width,canvas.height);

},500);

}

};

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持! ad51e517755f8fd6a7ec83ced4ecfaf3.png

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

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

相关文章

联邦计算在百度观星盘的实践

导读&#xff1a;本文简短综述联邦计算领域的核心技术点&#xff0c;随着联邦计算在产业界的应用及普及&#xff0c;保护数据隐私与解决数据孤岛&#xff0c;二者可以兼得&#xff0c;为数字广告营销等领域提供了一个全新思路。 全文4761字&#xff0c;预计阅读时间12分钟。 …

c语言 校正时区算法,如何正确校正星盘中的时差与时区

如何正确校正星盘中的时差与时区以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01; 制作命盘中最容易产生误差的就是时区问题了。 因为中国幅员辽阔&#xff0c;横跨好几个时区&#xff0c;但都…

C#: 星座星盘计算算法

前一篇提到计算八卦五行的算法&#xff0c;这里要跟大家分享一个星座星盘的算法。你们可能觉得笔者怎么开始研究这些玄幻的东西了&#xff0c;确实笔者觉得有一些真的是很扯&#xff0c;不过笔者的目的是为了研究大数据。好了&#xff0c;说到星盘笔者发现新浪星座有个很不错的…

星盘php,占星树星盘教程:如果通过星盘推算盘主适合哪个领域的工作?

塔罗 星盘占卜&#xff0c;请找阳阳老师 ~ XYZ&#xff1a;无论你遇到任何疑问&#xff0c;都请随时留言给阳阳老师&#xff0c;我会在看到信息后的第一时间回复的 Orz... 关注我&#xff0c;每天一个关于命理学的一个小知识(笑) ————其它热点内容请在文章底部查看 今天&a…

【Prompting】ChatGPT Prompt Engineering开发指南(6)

ChatGPT Prompt Engineering开发指南&#xff1a;Expanding/The Chat Format Expanding自定义对客户电子邮件的自动回复提醒模型使用客户电子邮件中的详细信息 The Chat Format总结内容来源 在本教程中&#xff0c;第一部分学习生成客户服务电子邮件&#xff0c;这些电子邮件是…

做外贸如何能提高开发信的回复率?

Snow给我分享了一封他们的开发信&#xff0c;我觉着写得很好&#xff0c;分享给大家。 各位可以仔细看下这封开发信。 一封好的开发信&#xff0c;要包含下面一些个要点&#xff1a; 1. 尽可能的简单&#xff0c;不要太长&#xff0c;一般3-8句话就可以了&#xff0c;太长客户…

ChatGPT背后的指令学习是什么?PSU最新首篇《指令学习》技术全面综述,详述指令学习关键问题

来源: 专知 任务语义可以用一组输入到输出的例子或一条文本指令来表示。传统的自然语言处理(NLP)机器学习方法主要依赖于大规模特定任务样本集的可用性。出现了两个问题: 首先&#xff0c;收集特定于任务的标记示例&#xff0c;不适用于任务可能太复杂或太昂贵而无法注释&#…

使用Python机器学习预测足球比赛结果:第一篇 数据采集 (下)

利物浦7比0狂胜曼联&#xff0c;这个锅不能再让C罗背了吧。预测足球比分有什么好方法吗&#xff1f; 微信搜索关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 探索足球结果和赔率的 Python 项目。 那么&#xff0c;让我们按照我所遵循的步骤进行&a…

cas latex模板参考文献APA等引用格式(Elsevier期刊)

目录 一、在模板中引入需要的 .bst 文件&#xff0c;每个文件都是一种参考文献的格式 二、模板中引入.bst 文件的格式 三、在 \documentclass 之后&#xff0c;\begin{document} 之前&#xff0c;引入 natbib 包 四、在文章正文中引用参考文献 例如&#xff1a;期待的参考文献格…

作为测试人员,我们该如何看待AI

前几天看到一篇文章讨论从测试人员的角度去理解AI的&#xff0c;稍微翻译了一下。原文地址https://stevethedoc.wordpress.com/2023/06/18/how-should-we-view-ai-as-testers 上周三和周四&#xff0c;我有幸与我的两位同事Sushmitha Sivan和Bhavana Akula一起参加了伦敦的AI峰…

【Ai工具合集,一定有你需要的!】

花费了一天的时间测试了市面上各大Ai工具&#xff0c;然后帮大家整理总结出来了这些工具&#xff0c;一定记得点赞收藏保存&#xff0c;后面肯定会用到&#xff01; 使用说明 1.部分Ai工具需要魔法上网&#xff0c;请自行解决&#xff1b;部分工具需要收费&#xff0c;可以尝…

把 ChatGPT 加入 Flutter 开发,会有怎样的体验?

前言 ChatGPT 最近一直都处于技术圈的讨论焦点。它除了可作为普通用户的日常 AI 助手&#xff0c;还可以帮助开发者加速开发进度。声网社区的一位开发者"小猿"就基于 ChatGPT 做了一场实验。仅 40 分钟就实现了一个互动直播 Demo。他是怎么做的呢&#xff1f;他将整个…

加入Beezy GPT-4体验官俱乐部,成为高级AI功能“领航员”

目前&#xff0c;Beezy已率先接入GPT-4 API &#xff0c;无需科学上网&#xff0c;为您带来简单好用的智能体验。 GPT-4 VS GPT-3.5 一、优点 GPT-4和 GPT-3.5语言模型在前沿技术的推动下&#xff0c;都具备了相当出色的自然语言生成能力。相较于GPT-3.5&#xff0c; GPT-4 实现…

迎来新兴市场数字化转型红利,雅乐科技潇洒画出“向上曲线”

3月14日&#xff0c;“中东小腾讯”雅乐科技公布了最新一季财报。财报显示&#xff0c;雅乐科技2022年第四季度&#xff0c;营收7510万美元&#xff0c;同比增长11.2%&#xff1b;净利润为1660万美元&#xff0c;净利润率22.1%&#xff1b;2022年全年营收3.036亿美元&#xff0…

梦幻西游手游排队显示服务器已满,梦幻西游手游排队进不去 一直排队解决方法...

今天小编为大家带来了梦幻西游手游排队进不去 一直排队解决方法&#xff0c;感兴趣的朋友们可以跟着小编去下文了解一下哦&#xff01; 梦幻西游手游排队进不去&#xff0c;一直排队怎么办&#xff1f;游戏新开服&#xff0c;总是会有一堆服务器排队问题&#xff0c;那么梦幻西…

梦幻西游单机架设教程-端游篇

准备工具&#xff1a; GGE 服务端 客户端 服务器 源码 废话不多说教程开始 我们打开GEE双击打开ggemain.exe这个程序 程序打开之后点击右上角文件设置 关联lua文件和关联项目文件后保存 打开服务端找到服务端. sublime-projectl打开把127.0.0.1改成我们服务器的ip 5、把默认端口…

好玩的免费GM游戏整理汇总

前言 我所有架设的游戏发布和更新都会实时整理到本文 https://echeverra.cn/h5game &#xff0c;建议收藏。 游戏全部免费带GM后台&#xff08;可以免费充值发送游戏道具&#xff09;&#xff0c;且长期维护&#xff0c;其中大天使之剑和梦幻西游我会一直一直维护下去。 有人…

【手游服务端】梦幻西游十五门派端+教程+GM物品后台

下载链接&#xff1a;https://pan.baidu.com/s/1ds_xFq1Rd1_xC4515BRGXw 提取码&#xff1a;soho 【手游服务端】梦幻西游十五门派端教程GM物品后台

最新亲测转转交易猫闲鱼后台源码

教程&#xff1a;修改数据库账号密码直接使用。 下载程序&#xff1a;https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

微信聊天记录导出工具WeChatExporter开源啦!

【2019年08月21日更新】 距离第一次发布软件已经有了许多新功能和稳定性上的提升&#xff0c;本文的一些内容已经过时&#xff0c;欢迎直接到GitHub上看ReadMe&#xff1a;https://github.com/tsycnh/WeChatExporter 之前曾经写过一个导出微信聊天记录的工具&#xff0c;偶尔自…