SOURCE

console 命令行工具 X clear

                    
>
console
<html>
<head>
<meta charset=utf-8>
<script>
$=function(b){return document.getElementById(b)};

sk={
	diff:0,
	point:5,
	linewidth:3,
	color:['green','red'],
	R:100,
	run:function(cnv){
		var cxt=cnv.getContext("2d");
		cxt.lineWidth=this.linewidth;
		cxt.lineJoin="round";
		
		cxt.translate(cnv.width/2,cnv.height/2);
		var r=this.R;
		
		var n=2*Math.PI/this.point;
		
		cxt.rotate(this.diff);
		cxt.beginPath();
		for(var i=0;i<this.point;i++){
			if(i==0){
				cxt.moveTo(0,-r);
			}else{
				cxt.lineTo(r*Math.sin(i*n),-r*Math.cos(i*n));
			};
		};
		cxt.closePath();
		cxt.strokeStyle=this.color[0];
		cxt.stroke();
		
		cxt.beginPath();
		for(var i=0;i<this.point;i++){
			if(i==0){
				cxt.moveTo(0,-r);
			}else{
				cxt.lineTo(r*Math.sin(2*i*n),-r*Math.cos(2*i*n));
			};
		};
		cxt.closePath();
		cxt.strokeStyle=this.color[1];
		cxt.stroke();
		cxt.rotate(-this.diff);
		cxt.translate(-cnv.width/2,-cnv.height/2);
	}
};

position=function(){
	var d=new Date(1984,0,21,5,5,2);
	var start=d.getTime()/1000;
	var wholeyear=31556926;
	var now=(new Date()).getTime()/1000;
	var diff=now-start;
	var yearnumber=parseInt(diff/wholeyear);
	var mydiff=diff/wholeyear-yearnumber;
	var yearRad=yearnumber/60*2*Math.PI;
	var jieqiposition=mydiff*2*Math.PI;
	var yunnumber=7-2*yearnumber;
	var qinumber=3-2*yearnumber;
	var startday=(new Date(2018,3,2,0,0,0)).getTime()/1000;
	var daynumber=parseInt((now-startday)/60/60/24);
	var dayRad=daynumber/60*2*Math.PI;
	var qi=parseInt(mydiff*6);
	var yun=parseInt(mydiff*5);
	return [dayRad,yearRad,jieqiposition,qinumber,yunnumber,qi,yun,daynumber];
};

setCanvas={
	id:0,
	R:1000,
	run:function(){
		var cnv=$(this.id);
		cnv.width=2*this.R;
		cnv.height=2*this.R;
		var cxt=cnv.getContext("2d");
		cxt.clearRect(0,0,cnv.width,cnv.height);
		return cnv;
	}
};

circle={
	user:[],
	diff:0,
	data:'木,火,土,金,水',
	size:40,
	color:'black',
	R:800,
	circle:true,
	circleColor:'black',
	run:function(cnv){
		var data=this.data.split(',');
		var cxt=cnv.getContext("2d");
		cxt.fillStyle=this.color;
		cxt.textAlign="center";	
		cxt.translate(cnv.width/2,cnv.height/2);
		var r=this.R;
		var f=this.size;
		if(this.circle){
			cxt.strokeStyle=this.circleColor;
			cxt.beginPath();
			cxt.arc(0,0,r-f/4,0,360,false);
			cxt.stroke();
		}
		cxt.font=f+"px Arial";
		var len=data.length;
		cxt.rotate(this.diff);
		if(this.user.length==0){
			for(var i=0;i<len;i++){
				cxt.fillText(data[i],0,-r);
				cxt.rotate(2*Math.PI/len);
			};
		}else{
			console.log('hello')
			for(var i=0;i<len;i++){
				cxt.fillText(data[i],0,-r);
				cxt.rotate(this.user[i]);
			};
		};
		cxt.rotate(-this.diff);
		cxt.translate(-cnv.width/2,-cnv.height/2);
	}
};

pointer={
	color:'red',
	R:600,
	size:60,
	run:function(cnv){
		var date=new Date();
		var cxt=cnv.getContext("2d");
		cxt.font=this.size+"px Arial";
		cxt.translate(cnv.width/2,cnv.height/2);
		var n=(date.getHours()*60+date.getMinutes())/24/60;
		cxt.rotate(2*n*Math.PI);
		cxt.fillStyle=this.color;
		cxt.fillText('^',0,-this.R);
		cxt.rotate(-2*n*Math.PI);
		cxt.translate(-cnv.width/2,-cnv.height/2);
	}
};
</script>
</head>
<body>
<canvas id=0></canvas>
<div>
</body>
<script>
/*
肺,大肠,胃,脾,心,小肠,膀胱,肾,心包,三焦,胆,肝;木,火,土,金,水
乾,巽,坎,艮,坤,震,离,兑;☰,☴,☵,☶,☷,☳,☲,☱
中府-少商,商阳-迎香,承泣-历兑,隐白-大包,极泉-少冲,少泽-听宫,睛明-至阴,涌泉-俞府,天池-中冲,关冲-丝竹空,瞳子髎-足窍阴,大敦-期门;肺,大肠,胃,脾,心,小肠,膀胱,肾,心包,三焦,胆,肝;寅,卯,辰,巳,午,未,申,酉,戌,害,子,丑
*/
//({data:'足1指阳-乳下2寸,云门下1寸-手1指阴,手2指阴-鼻角,眼正下-足2指阳,足1指阴-腋下6寸,腋窝动脉-手5指阴,手5指阳-耳中突,眼内角-足5指阳,足前掌心-锁骨下,乳外1寸-手3指尖,手4指阳-眉梢,眼外角-足4指阳;瞳子髎-足窍阴,大敦-期门,中府-少商,商阳-迎香,承泣-历兑,隐白-大包,极泉-少冲,少泽-听宫,睛明-至阴,涌泉-俞府,天池-中冲,关冲-丝竹空;足少阳,足厥阴,手太阴,手阳明,足阳明,足太阴,手少阴,手太阳,足太阳,足少阴,手厥阴,手少阳;胆,肝,肺,大肠,胃,脾,心,小肠,膀胱,肾,心包,三焦;子,丑,寅,卯,辰,巳,午,未,申,酉,戌,害',fontsize:[15,20,30,40,30],r:300,__proto__:circle}).run();
//({data:'星,张,翼,轸,奎,娄,胃,昴,毕,觜,参,斗,牛,女,虚,危,室,壁,角,亢,氐,房,心,尾,箕,井,鬼,柳;朱雀,白虎,玄武,青龙;南,西,北,东;太阳,少阴,太阴,少阳',fontsize:[20,60,60,60],r:300,__proto__:circle}).run();
//({data:'夜半,鸡鸣,平旦,日出,食时,隅中,日中,日昳,日晡,日入,黄昏,人定;0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23;足少阳,足厥阴,手太阴,手阳明,足阳明,足太阴,手少阴,手太阳,足太阳,足少阴,手厥阴,手少阳;胆,肝,肺,大肠,胃,脾,心,小肠,膀胱,肾,心包,三焦;鼠,牛,虎,兔,龙,蛇,马,羊,猴,鸡,狗,猪;子,丑,寅,卯,辰,巳,午,未,申,酉,戌,害',fontsize:[40,30,25,40,40,25],r:300,__proto__:circle}).run();


(function(){
	var mycanvas=({id:0,R:880,__proto__:setCanvas}).run();
	var k=position();
	
	({data:'阳土,阴金,阳水,阴木,阳火,阴土,阳金,阴水,阳木,阴火,阳土,阴金,阳水,阴木,阳火,阴土,阳金,阴水,阳木,阴火,阳土,阴金,阳水,阴木,阳火,阴土,阳金,阴水,阳木,阴火,阳土,阴金,阳水,阴木,阳火,阴土,阳金,阴水,阳木,阴火,阳土,阴金,阳水,阴木,阳火,阴土,阳金,阴水,阳木,阴火,阳土,阴金,阳水,阴木,阳火,阴土,阳金,阴水,阳木,阴火',diff:-k[1],color:'red',R:850,size:28,__proto__:circle}).run(mycanvas);
	({data:'少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴',diff:-k[1],R:815,size:28,circle:false,__proto__:circle}).run(mycanvas);
	({data:'君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木',diff:-k[1],R:785,size:28,__proto__:circle}).run(mycanvas);
	({data:'阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳,阳明,太阳,厥阴,少阴,太阴,少阳',diff:-k[1],color:'red',R:750,size:28,circle:false,__proto__:circle}).run(mycanvas);
	({data:'燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火,燥金,寒水,风木,君火,湿土,相火',diff:-k[1],color:'red',R:720,size:28,__proto__:circle}).run(mycanvas);
	({data:'海中金,炉中火,大林木,路旁土,剑锋金,山头火,涧下水,城头土,白蜡金,杨柳木,泉中水,屋上土,霹雳火,松柏木,长流水,沙中金,山下火,平地木,壁上土,金箔金,覆灯火,天河水,大驿土,钗钏金,桑柘木,大溪水,沙中土,天上火,石榴木,大海水',diff:-k[1],color:'blue',circle:false,diff:Math.PI/60,R:685,size:30,circleColor:'red',__proto__:circle}).run(mycanvas);
	({data:'0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59',diff:-k[1],color:'red',R:665,size:20,circleColor:'red',__proto__:circle}).run(mycanvas);
	({data:'甲,乙,丙,丁,戊,己,庚,辛,壬,癸,甲,乙,丙,丁,戊,己,庚,辛,壬,癸,甲,乙,丙,丁,戊,己,庚,辛,壬,癸,甲,乙,丙,丁,戊,己,庚,辛,壬,癸,甲,乙,丙,丁,戊,己,庚,辛,壬,癸,甲,乙,丙,丁,戊,己,庚,辛,壬,癸',diff:-k[1],R:620,size:40,circle:false,__proto__:circle}).run(mycanvas);
	({data:'子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥,子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥,子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥,子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥,子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥',diff:-k[1],R:570,size:40,__proto__:circle}).run(mycanvas);
	
	
	({data:'.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.',diff:-k[2],user:[0.258106234,0.255051129,0.256730999,0.258608383,0.260878408,0.263058038,0.2653643,0.267233123,0.268968544,0.269967466,0.270641843,0.270449505,0.269873885,0.268531503,0.266897029,0.264785892,0.262590135,0.260285466,0.258155015,0.256248362,0.254750875,0.253704764,0.24903629,0.253268121],R:445,color:'red',size:30,circle:false,__proto__:circle}).run(mycanvas);
	({data:'大寒,立春,雨水,惊蛰,春分,清明,谷雨,立夏,小满,芒种,夏至,小暑,大暑,立秋,处暑,白露,秋分,寒露,霜降,立冬,小雪,大雪,冬至,小寒',diff:-k[2],user:[0.258106234,0.255051129,0.256730999,0.258608383,0.260878408,0.263058038,0.2653643,0.267233123,0.268968544,0.269967466,0.270641843,0.270449505,0.269873885,0.268531503,0.266897029,0.264785892,0.262590135,0.260285466,0.258155015,0.256248362,0.254750875,0.253704764,0.24903629,0.253268121],R:430,color:'blue',size:20,__proto__:circle}).run(mycanvas);
	
	
	
	
	
	
	
	({data:'少角木,太徵火,少宫土,太商金,少羽水',diff:-(k[6]-k[4])*2*Math.PI/5,R:400,size:20,__proto__:circle}).run(mycanvas);
	({data:'少角木,太徵火,少宫土,太商金,少羽水',diff:-k[6]*2*Math.PI/5,R:370,color:'blue',size:20,__proto__:circle}).run(mycanvas);
	
	({data:'厥阴风木,少阴君火,太阴湿土,少阳相火,阳明燥金,太阳寒水',diff:-(k[5]-k[3])*2*Math.PI/6,R:330,size:20,__proto__:circle}).run(mycanvas);
	({data:'厥阴风木,少阴君火,少阳相火,太阴湿土,阳明燥金,太阳寒水',diff:-k[5]*2*Math.PI/6,color:'blue',R:300,size:20,__proto__:circle}).run(mycanvas);
	
	
	({color:'red',size:45,R:510,run:function(cnv){//准线,并日期
		var cxt=cnv.getContext("2d");
		cxt.font=this.size+"px Arial";
		cxt.translate(cnv.width/2,cnv.height/2);
		
		
		cxt.lineWidth=.2;
		cxt.beginPath();
		cxt.moveTo(0,880);
		cxt.lineTo(0,-880);
		cxt.closePath();
		cxt.strokeStyle='red';
		cxt.stroke();
		
		var gan='甲,乙,丙,丁,戊,己,庚,辛,壬,癸'.split(',');
		var zhi='子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥'.split(',');
		var n=k[7];
		cxt.fillText(gan[n%10]+zhi[n%12]+'日',0,0);
		
		
		cxt.translate(-cnv.width/2,-cnv.height/2);
	},__proto__:pointer}).run(mycanvas);
	
	
	
	
	
	
	
	({data:'木,火,土,金,水',R:260,size:30,circle:false,__proto__:circle}).run(mycanvas);
	
	({R:250,__proto__:sk}).run(mycanvas);
	
	mycanvas.onclick=arguments.callee;
})();
</script>
</html>