Home > 梅原 > 88星座

88星座

20091224
Category:梅原 /Tags:

umhr_88star88星座

Get Adobe Flash player


疲れた。一番大変だったのは星座の線。
20個くらいやって、二度とやりたくないと思ったので、
88星座全部に線を引いた。

時刻から位置(回転)をつくるわけだけど、
一部、計算が合わなくてそれっぽく見えるような
値を足している。次回への課題。

前から星座表はやりたかったんだけど、
使いやすい星の座標データが見つけられなかったのでできてなかった。
uwiさんに感謝。

惑星と月も追加できたら完璧なんだろうけど、今は無理だな。
特に惑星が。

参考
http://wonderfl.net/code/8d2908ec47387090459c10aef975b823f5d5331b
http://www3.plala.or.jp/cielo/graffias/data/star.html
http://mirahouse.jp/begin/constellation/index.html
http://www.toxsoft.com/stella/index.html

▼Wonderfl
http://wonderfl.net/code/6c8e1242b3b579be206fe52167d3a15696f9a086

▼ActionScript AS3(FP10)
http://www.mztm.jp/wp/wp-content/uploads/2009/12/Mainas.zip
↓コードが長すぎるとblogに貼付けられないようなので一部省略

/*
疲れた。一番大変だったのは星座の線。
20個くらいやって、二度とやりたくないと思ったので、
88星座全部に線を引いた。

時刻から位置(回転)をつくるわけだけど、
一部、計算が合わなくてそれっぽく見えるような
値を足している。次回への課題。

前から星座表はやりたかったんだけど、
使いやすい星の座標データが見つけられなかったのでできてなかった。
uwiさんに感謝。

惑星と月も追加できたら完璧なんだろうけど、今は無理だな。
特に惑星が。

参考

http://wonderfl.net/code/8d2908ec47387090459c10aef975b823f5d5331b

http://www3.plala.or.jp/cielo/graffias/data/star.html

http://mirahouse.jp/begin/constellation/index.html

http://www.toxsoft.com/stella/index.html

*/
package
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.ColorTransform;
	import flash.geom.Matrix;
	import flash.geom.Point;
	import flash.geom.Rectangle;
	import flash.text.TextField;
	import flash.text.TextFormat;

	[SWF(backgroundColor="0x000000")]
	public class Main extends Sprite
	{
		private var _dataMgr:DataMgr;
		private var _canvasRect:Rectangle;
		private var _r:Number;
		private var _bitmapData:BitmapData;
		private const FADE:ColorTransform = new ColorTransform(1, 1, 1, 1, -0xF2, -0xF2, -0xF2);
		private const NEWS:Array = ["W","NW","N","NE","E","SE","S","SW"];
		private var _mode:int = 0;//0:line+name,1:line,2:none
		private var _view:int = 0;//0:half,1:top
		private var _bgRect:Shape;
		private var _bgCircle:Shape;
		private var _tf:TextField
		public function Main()
		{
			stage.align = "TL";
			stage.scaleMode = "noScale";

			_canvasRect = new Rectangle(0,0,stage.stageWidth,stage.stageHeight);
			_r = Math.max(_canvasRect.width,_canvasRect.height);
			_bitmapData = new BitmapData(_canvasRect.width,_canvasRect.height,false,0);

			_dataMgr = new DataMgr();
			addChild(new Bitmap(_bitmapData));
			_bgRect = new Shape();
			_bgCircle = new Shape();
			var matrix:Matrix = new Matrix();
			matrix.createGradientBox(_canvasRect.width,_canvasRect.height,Math.PI/2,0,0);
			_bgRect.graphics.beginGradientFill("linear",[0x000000,0x0C0022],[1,1],[0xAA,0xFF],matrix);
			_bgRect.graphics.drawRect(0,0,_canvasRect.width,_canvasRect.height);
			_bgRect.graphics.endFill();
			_bgRect.blendMode = "lighten";
			this.addChild(_bgRect);
			matrix.createGradientBox(_canvasRect.width,_canvasRect.height,0,0,0);
			_bgCircle.graphics.beginGradientFill("radial",[0x000000,0x0C0022],[1,1],[0xAA,0xFF],matrix);
			_bgCircle.graphics.drawCircle(_canvasRect.width/2,_canvasRect.height/2,_r/2.2);
			_bgCircle.graphics.endFill();
			_bgCircle.blendMode = "lighten";

			_tf = new TextField();
			_tf.defaultTextFormat = new TextFormat("_sans",12);
			_tf.height = 21;
			_tf.width = 200;
			_tf.textColor = 0x777777;
			_tf.selectable = false;
			this.addChild(_tf);

			this.addEventListener(Event.ENTER_FRAME,atEnterFrame);
			stage.addEventListener(MouseEvent.CLICK,atClick);

			_r =  (Math.max(_canvasRect.width,_canvasRect.height)/2.2)*2.4;
			_canvasRect.y = stage.stageHeight/2;
		}
		private function atClick(event:MouseEvent):void{
			_mode ++;
			_mode = _mode%3;
			if(_mode == 0){
				_view ++;
				_view = _view%2;
				_dataMgr.init(_view);
				if(_view == 1){
					_canvasRect.y = 0;
					_r = Math.max(_canvasRect.width,_canvasRect.height)/2.2;
					this.removeChild(_bgRect);
					this.addChild(_bgCircle);
				}else{
					_canvasRect.y = _canvasRect.height/2;
					_r = (Math.max(_canvasRect.width,_canvasRect.height)/2.2)*2.4;
					this.removeChild(_bgCircle);
					this.addChild(_bgRect);
				}
			}
		}

		private function atEnterFrame(event:Event):void{
			var n:int;
			var i:int;
			var vector:Vector.<Number>;

			_bitmapData.lock();
			_bitmapData.colorTransform(_bitmapData.rect, FADE);

			//Stars星
			vector = _dataMgr.getPoz();

			n = vector.length/3;
			for (i = 0; i < n; i++) {
				if(vector[i*3+2] > 0){
					/*
					星のHR番号
					if(_dataMgr.hr[i][1] == _dataMgr.testNum){
						var tf0:TextField = new TextField();
						tf0.defaultTextFormat = new TextFormat("_sans",9);
						tf0.text = String(_dataMgr.hr[i][0]);
						tf0.autoSize = "left";
						tf0.textColor = 0x777777;
						_bitmapData.draw(tf0,new Matrix(1,0,0,1,vector[i*3]*_r+_canvasRect.width/2,vector[i*3+1]*_r+_canvasRect.height/2));
					}
					*/
					//2等星以上の場合は、ちょっとだけ大きいまる
					var mag:int = _dataMgr.magnitude[i];
					if(mag <= 2){
						var star:Shape = new Shape();
						star.graphics.beginFill(_dataMgr.colors[i]);
						star.graphics.drawCircle(vector[i*3]*_r+_canvasRect.width/2,vector[i*3+1]*_r+_canvasRect.height/2+_canvasRect.y,(4-mag)/2);
						star.graphics.endFill();
						_bitmapData.draw(star);
					}else{
						_bitmapData.setPixel(vector[i*3]*_r+_canvasRect.width/2,vector[i*3+1]*_r+_canvasRect.height/2+_canvasRect.y,_dataMgr.colors[i]);
					}
				}
			}

			//Constellation星座
			n = _dataMgr.constellation.length;
			if(_mode > 1){n = 0};
			for (i = 0; i < n; i++) {
				var j:int;
				var m:int = _dataMgr.constellation[i].length-1;
				var s0:int;
				var s1:int;
				var titlePoz:Array = [];
				//見える範囲にある星だけを
				var shape:Shape = new Shape();
				for (j = 0; j < m; j++) {
					shape.graphics.lineStyle(1,0x222222,1);
					s0 = _dataMgr.constellation[i][j];
					s1 = _dataMgr.constellation[i][j+1];
					if(vector[s0*3+2] < 0 || vector[s1*3+2] < 0){
						continue;
					}
					if((vector[s0*3+1] > 0.2 || vector[s1*3+1] > 0.2) && _view == 0){
						continue;
					}
					titlePoz.push(new Point(vector[s0*3]*_r+_canvasRect.width/2,vector[s0*3+1]*_r+_canvasRect.height/2+_canvasRect.y));
					shape.graphics.moveTo(vector[s0*3]*_r+_canvasRect.width/2,vector[s0*3+1]*_r+_canvasRect.height/2+_canvasRect.y);
					shape.graphics.lineTo(vector[s1*3]*_r+_canvasRect.width/2,vector[s1*3+1]*_r+_canvasRect.height/2+_canvasRect.y);
				}
				//ひとつも描かれなければ、つぎへ
				if(shape.width == 0){
					continue;
				}
				_bitmapData.draw(shape,null,null,"lighten");
				if(_mode > 0){continue};
				//星座名
				var constellationName:TextField = new TextField();
				constellationName.defaultTextFormat = new TextFormat("_sans");
				constellationName.text = _dataMgr.getConstellationName(i);
				constellationName.autoSize = "left";
				constellationName.textColor = 0x666666;
				//表示されている星の位置の中央に来るように
				m = titlePoz.length;
				var titlePoint:Point = new Point();
				for (j = 0; j < m; j++) {
					titlePoint.x += titlePoz[j].x/m;
					titlePoint.y += titlePoz[j].y/m;
				}
				_bitmapData.draw(constellationName,new Matrix(1,0,0,1,titlePoint.x,titlePoint.y));
			}
			//Compass方位
			vector = _dataMgr.getCompass();
			n = vector.length/3;
			for (i = 0; i < n; i++) {
				if(vector[i*3+2] > 0 || _view == 1){
					var x:Number = vector[i*3]*_r+_canvasRect.width/2;
					var y:Number = vector[i*3+1]*_r+_canvasRect.height/2+_canvasRect.y;
					//_bitmapData.setPixel(x,y,0xFF0000);//ドット
					var tf:TextField = new TextField();
					tf.defaultTextFormat = new TextFormat("_sans",14);
					tf.text = NEWS[i];
					tf.autoSize = "left";
					tf.textColor = 0x333399;
					_bitmapData.draw(tf,new Matrix(1,0,0,1,x-tf.width/2,y-20));
				}
			}

			_bitmapData.unlock();

			var mouseX:Number = stage.mouseX;
			var mouseY:Number = stage.mouseY;
			if(_view == 0 && 0 < mouseX && mouseX < _canvasRect.width){
				var degreeX:Number = -(mouseX-_canvasRect.width/2)/100;
				if(Math.abs(degreeX) > 1){
					_dataMgr.appendRotationY(degreeX/2);
				}
			}
			if(_view == 0 && 0 < mouseY && mouseY < _canvasRect.height){
				var degreeY:Number = -(mouseY-_canvasRect.height/2)/100;
				if(Math.abs(degreeY) > 1){
					_dataMgr.appendRotationZ(degreeY/2);
				}
			}
			//時刻表時
			_tf.text = _dataMgr.getDateText();
		}
	}
}
import flash.display.Sprite;
import flash.geom.Matrix3D;
import flash.geom.Vector3D;

class DataMgr{
	//private var _count:int;
	private var _matrix3D:Matrix3D;
	private var _vin:Vector.<Number>;
	private var _matrix3DCompass:Matrix3D;
	private var _vinCompass:Vector.<Number>;
	public var colors:Vector.<Number>;
	public var magnitude:Vector.<Number>;
	public var hr:Array = [];//
	private var source:Source = new Source("all");
	public function DataMgr(){
		_matrix3D = new Matrix3D();
		_matrix3DCompass = new Matrix3D();
		init();
		_vin = new Vector.<Number>();
		colors = new Vector.<Number>();
		magnitude = new Vector.<Number>();
		magnitude = source.magnitude.concat();
		trace("星の数",source.length)
		for (var i:int = 0; i < source.length; i++) {
			//球面に貼付ける
			//なぜ0.9を足すとちょうどいいのかはわからないw
			var sX:Number = Math.PI*(source.rightAscension[i]/180+0.9);
			var sY:Number = Math.PI*(source.declination[i]/180);
			_vin = _vin.concat(Vector.<Number>([Math.cos(sY)*Math.cos(sX), Math.cos(sY)*Math.sin(sX), Math.sin(sY)]));
			//色
			colors[i] = colorCollection(magnitude[i],source.colors[i]);
			hr[i] = [source.HRNumber[i],source.constellation[i]];
		}
		//compass
		_vinCompass = new Vector.<Number>();
		for (i = 0; i < 8; i++) {
			var cX:Number = Math.PI;
			var cY:Number = Math.PI*(i/4);
			_vinCompass = _vinCompass.concat(Vector.<Number>([Math.cos(cY)*Math.cos(cX), Math.cos(cY)*Math.sin(cX), Math.sin(cY)]));
		}
		//星座
		constellation = [];
		var ar:Array = [];
		var temp:Array = [];
		for (i = 0; i < source.length; i++) {
			ar[i] = source.HRNumber[i];
			//作成時用
//			if(constellation[i] == testNum){
//				temp.push(HRNumber[i]);
//			}
		}
		//if(temp.length > 0){
			//trace(temp);
		//}
		//
		var n:int = source.CONSTELLATION.length;
		for (i = 0; i < n; i++) {
			var array:Array = [];
			for (var j:int = 0; j < source.CONSTELLATION[i].line.length; j++) {
				var t:int = ar.indexOf(source.CONSTELLATION[i].line[j]);
				if(t > 0){
					array.push(t);
				}else{
					//STARSにCONSTELLATION上の番号が無い時
					trace(source.CONSTELLATION[i].line[j],source.CONSTELLATION[i].name,i,j)
				}

			}
			constellation[i] = array.concat();
		}
	}
	public function init(view:int = 0):void{
		_matrix3D.identity();
		_matrix3DCompass.identity();
		//北緯35.41(東京)
		_matrix3D.appendRotation(35.41,Vector3D.X_AXIS);
		//現在の時刻ぶん回転
		setTime();
		if(view == 0){
			//北を向く
			_matrix3D.appendRotation(_rY,Vector3D.Y_AXIS);
			_matrix3DCompass.appendRotation(_rY,Vector3D.Y_AXIS);
			//_matrix3D.prependRotation(-_rZ,Vector3D.Z_AXIS);
		}else{
			//頂点を向く
			_matrix3D.appendRotation(-90,Vector3D.X_AXIS);
			_matrix3DCompass.appendRotation(-90,Vector3D.X_AXIS);
		}
		_matrix3D.prependRotation(-_rZ,Vector3D.Z_AXIS);
	}
	public function getDateText():String{
		var date:Date = new Date();
		date.setTime(date.getTime()+86164090.54*_rZ/360);
		var str:String = String(date.getFullYear())+"年"+String(date.getMonth()+1)+"月"+String(date.getDate())+"日";
		str += String(date.getHours())+"時"+String(date.getMinutes())+"分";
		return str;
	}
	private function setTime():void{
		//星座の座標は2000分点(2000年時の座標なので2000年1月1日からどれだけ回転したかを求める。)
		var date:Date = new Date();
		//946652400000は1970年1月1日から2000年までのミリ秒
		//86164090.54は地球が一回転(約一日)するまでのミリ秒
		var rotation:Number = (date.time-946652400000)%86164090.54;
		rotation /= 86164090.54;
		_matrix3D.prependRotation(-rotation*360,Vector3D.Z_AXIS);
	}
	private function colorCollection(magnitude:Number,spectals:Number):int{
		var r:int = spectals >> 16;
		var g:int = spectals >> 8 & 0xFF;
		var b:int = spectals & 0xFF;
		var percent:Number = (8-magnitude)/9;
		percent = percent*0.9 + 0.1;
		r = Math.floor(r*percent);
		g = Math.floor(g*percent);
		b = Math.floor(b*percent);
		return r*(0x10000)+g*(0x100)+b;
	}
	private var _rY:Number = 0;
	private var _rZ:Number = 0;
	public function appendRotationZ(degrees:Number):void{
		degrees /= 2;
		_matrix3D.prependRotation(degrees,Vector3D.Z_AXIS);
		_rZ -= degrees;
	}
	public function appendRotationY(degrees:Number):void{
		_matrix3D.appendRotation(degrees,Vector3D.Y_AXIS);
		_matrix3DCompass.appendRotation(degrees,Vector3D.Y_AXIS);
		_rY += degrees;
	}
	public function getCompass():Vector.<Number>{
		var vout:Vector.<Number> = new Vector.<Number>();
		_matrix3DCompass.transformVectors(_vinCompass,vout);
		return vout;
	}
	public function getPoz():Vector.<Number>{
		var vout:Vector.<Number> = new Vector.<Number>();
		_matrix3D.transformVectors(_vin,vout);
		return vout;
	}
	public var testNum:int = -1;//
	public function getConstellationName(value:Number):String{
		return source.CONSTELLATION[value].name;
	}
	public var constellation:Array;
}
class Source{
	public var HRNumber:Vector.<Number>;//HR番号
	public var constellation:Vector.<Number>;//星座
	public var rightAscension:Vector.<Number>;//赤経
	public var declination:Vector.<Number>;//赤緯
	public var magnitude:Vector.<Number>;//視等級
	public var colors:Vector.<Number>;//色
	public var length:int;
	private const SPECTALS:Array = [0x7f7fff,0xbfbfff,0xffffff,0xffffbf,0xffff7f,0xffbf7f,0xff7f7f,0xbf7f7f];
	public function Source(type:String = "all"){
		if(type == "all"){
			length = STARS_ALL.length;
		}else{
			length = STARS.length;
		}
		HRNumber = new Vector.<Number>(length,true);
		constellation = new Vector.<Number>(length,true);
		rightAscension = new Vector.<Number>(length,true);
		declination = new Vector.<Number>(length,true);
		magnitude = new Vector.<Number>(length,true);
		colors = new Vector.<Number>(length,true);
		for (var i:int = 0; i < length; i++) {
			if(type == "all"){
				HRNumber[i] = STARS_ALL[i][0];
				constellation[i] = STARS_ALL[i][1];
				rightAscension[i] = STARS_ALL[i][5]*15+STARS_ALL[i][6]*15/60+STARS_ALL[i][7]*15/3600;
				declination[i] = (1-2*STARS_ALL[i][8])*(STARS_ALL[i][9]+STARS_ALL[i][10]/60+STARS_ALL[i][11]/3600);
				magnitude[i] = STARS_ALL[i][12]-1;
				colors[i] = SPECTALS[STARS_ALL[i][13]];
			}else{
				HRNumber[i] = STARS[i][0];
				constellation[i] = STARS[i][1];
				rightAscension[i] = STARS[i][5];
				declination[i] = STARS[i][6];
				magnitude[i] = STARS[i][7]-1;
				colors[i] = SPECTALS[STARS[i][8]];
			}
		}
	}
	public const CONSTELLATION:Array = [
		{name:"アンドロメダ",line:[8961,8976,8965,8762,8965,154,15,165,215,165,337,603,337,269,226,335,464]}//0.
		,{name:"ポンプ",line:[3765,4104,4273]}//1.
		,{name:"ふうちょう",line:[5470,6102,6163,5470]}//2.
		,{name:"わし",line:[7710,7602,7557,7525,7235,7176,7235,7525,7377,7236,7193]}//3.
		,{name:"みずがめ",line:[7950,8232,8414,8518,8499,8418,8499,8518,8558,8539,8558,8597,8698,8679,8709,8812,8892,8858,8834,8597]}//4.
		,{name:"さいだん",line:[6229,6285,6295,6510,6743,6510,6461,6462,6500]}//5.
		,{name:"おひつじ",line:[838,545,553,617]}//6.
		,{name:"ぎょしゃ",line:[1641,1605,1708,2088,2077,2088,2095,1791,1577,1641,1708]}//7.
		,{name:"うしかい",line:[5185,5235,5340,5478,5340,5506,5681,5602,5435,5351,5404,5351,5435,5429,5340]}//8.
		,{name:"ちょうこくぐ",line:[1502,1503,1652]}//9.
		,{name:"きりん",line:[1148,1542,1603,1568]}//10.
		,{name:"やぎ",line:[7747,7776,7936,7980,8204,8260,8278,8322,8278,8075,7776]}//11.
		,{name:"りゅうこつ",line:[2326,3117,3307,3699,4199,3699,3685,4037]}//12.
		,{name:"カシオペア",line:[21,168,264,403,542]}//13.
		,{name:"ケンタウルス",line:[5459,5267,5132,5231,5249,5193,5190,5028,5288,5440,5576,5440,5288,5028,4819,4743,4621]}//14.
		,{name:"ケフェウス",line:[8571,8494,8465,8694,8974,8238,8162,8465,8162,7957,7850]}//15.
		,{name:"くじら",line:[74,188,334,402,539,509,539,681,811,681,779,718,813,896,911,804,718]}//16.
		,{name:"カメレオン",line:[3318,4174,4674]}//17.
		,{name:"コンパス",line:[5670,5463,5704]}//18.
		,{name:"おおいぬ",line:[2294,2429,2491,2574,2657,2491,2693,2580,2693,2618,2693,2827]}//19.
		,{name:"こいぬ",line:[2845,2943]}//20.
		,{name:"かに",line:[3249,3461,3572,3461,3449,3475]}//21.
		,{name:"はと",line:[1862,1956,2040,2120,2040,2106,2296]}//22.
		,{name:"かみのけ",line:[4983]}//23.
		,{name:"みなみのかんむり",line:[6951,7226,7254,7259,7242]}//24.
		,{name:"かんむり",line:[5778,5747,5793,5849,5889,5947,5971]}//25.
		,{name:"コップ",line:[4287,4343,4405,4514,4567,4468,4402,4382,4287]}//26.
		,{name:"みなみじゅうじ",line:[4730,4763,4853,4656]}//27.
		,{name:"からす",line:[4623,4630,4662,4757,4786,4630]}//28.
		,{name:"りょうけん",line:[4785,4915]}//29.
		,{name:"はくちょう",line:[7328,7420,7528,7796,7924,7796,7949,8115,7949,7796,7417]}//30.
		,{name:"いるか",line:[7852,7882,7906,7948,7928,7882]}//31.
		,{name:"かじき",line:[1338,1465,1922,2015]}//32.
		,{name:"りゅう",line:[4434,4787,5291,5744,5986,6132,6396,6920,7582,7310,6688,6554,6536,6705,6688]}//33.
		,{name:"こうま",line:[8097,8131,8123]}//34.
		,{name:"エリダヌス",line:[472,566,721,794,897,1347,1393,1464,1453,1240,1213,1173,1088,1003,919,818,874,1084,1136,1162,1231,1298,1463,1520,1666]}//35.
		,{name:"ろ",line:[612,841,963]}//36.
		,{name:"ふたご",line:[2134,2216,2286,2473,2697,2540,2697,2891,2990,2777,2763,2777,2650,2421,2484]}//37.
		,{name:"つる",line:[8353,8411,8486,8556,8636,8425,8636,8675,8747]}//38.
		,{name:"ヘルクレス",line:[6779,6703,6623,6526,6410,6406,6148,6095,6117,6159,6117,6095,6148,6212,6220,6168,6092,6023,5914,6023,6092,6168,6220,6418,6324,6410,6324,6418,6484,6695,6588]}//39.
		,{name:"とけい",line:[778,934,909,934,1326]}//40.
		,{name:"うみへび",line:[3547,3482,3410,3418,3454,3547,3665,3845,3748,3903,3970,3994,4094,4232,4450,4552,5020,5287,5526]}//41.
		,{name:"みずへび",line:[1208,98,591]}//42.
		,{name:"インディアン",line:[7869,7920,7986,8368]}//43.
		,{name:"とかげ",line:[8498,8579,8632,8523,8572,8541,8585,8538]}//44.
		,{name:"しし",line:[3773,3873,3905,4031,4057,3975,4357,4534,4359,4399,4386,4399,4359,3982,3975]}//45.
		,{name:"うさぎ",line:[1705,1702,1756,1702,1865,1829,1654,1829,1865,2035,1983,2035,1998,1865,1998,2085,2155]}//46.
		,{name:"てんびん",line:[5603,5531,5685,5787,5603]}//47.
		,{name:"こじし",line:[3974,4100,4247]}//48.
		,{name:"おおかみ",line:[5649,5683,5708,5776,5948,5883,5948,5776,5695,5571,5469]}//49.
		,{name:"やまねこ",line:[2238,2560,2818,3275,3690,3705]}//50.
		,{name:"こと",line:[7051,7001,7056,7106,7178,7139,7056]}//51.
		,{name:"テーブルさん",line:[1677,2261,2689]}//52.
		,{name:"けんびきょう",line:[7965,8039,8048]}//53.
		,{name:"いっかくじゅう",line:[3188,2714,2506,2298,2385,2298,2356,2298,2227]}//54.
		,{name:"はえ",line:[4520,4671,4798,4844,4923,4773,4798]}//55.
		,{name:"じょうぎ",line:[5980,5962,6072,6115]}//56.
		,{name:"はちぶんぎ",line:[5339,8630,8254]}//57.
		,{name:"へびつかい",line:[6104,6112,6147,6075,6056,6075,6149,6299,6556,6603,6629,6698,6378,6453,6492,6453,6378,6147]}//58.
		,{name:"オリオン",line:[1601,1567,1552,1543,1544,1570,1580,1638,1790,1852,1788,1713,2004,1948,2061,1879,1790,1879,2061,2124,2199,2159,2135,2047]}//59.
		,{name:"くじゃく",line:[7790,8181,7913,7665,7074,6582,6982,7590,8181]}//60.
		,{name:"ペガスス",line:[8308,8450,8634,8781,39,15,8775,8650,8454,8650,8775,8781,8775,8684,8667,8430,8315]}//61.
		,{name:"ペルセウス",line:[1261,1303,1273,1122,1017,915,834,496,834,915,854,799,936,921,936,799,941,1220,1228,1203,1131]}//62.
		,{name:"ほうおう",line:[25,99,322,429,440,322,338]}//63.
		,{name:"がか",line:[2042,2550,2020]}//64.
		,{name:"みなみのうお",line:[8431,8576,8695,8720,8728,8628,8326,8305,8431]}//65.
		,{name:"うお",line:[352,383,360,437,510,595,489,294,224,9072,8984,8911,8852,8916,8969,9072]}//66.
		,{name:"とも",line:[2451,2773,3045,3185,3165,2773]}//67.
		,{name:"らしんばん",line:[3438,3468,3518]}//68.
		,{name:"レチクル",line:[1175,1336,1355,1247,1175]}//69.
		,{name:"ちょうこくしつ",line:[280,9016,8863,8937]}//70.
		,{name:"さそり",line:[5928,5944,5953,5984,6027,5984,5953,6084,6134,6165,6241,6247,6271,6380,6553,6615,6580,6508,6527]}//71.
		,{name:"たて",line:[6930,6973,7063,7020]}//72.
		,{name:"へび",line:[5867,5842,5879,5933,5867,5788,5854,5892,5881,6561,6869,7141]}//73.
		,{name:"ろくぶんぎ",line:[3909,3981,4119]}//74.
		,{name:"や",line:[7479,7536,7488,7536,7635]}//75.
		,{name:"いて",line:[6746,6859,6879,6832,6879,6859,7039,6913,6812,6913,7039,7121,7234,7194]}//76.
		,{name:"おうし",line:[1910,1457,1412,1346,1239,1030,1251,1101,1251,1030,1038,1373,1346,1373,1409,1791]}//77.
		,{name:"ぼうえんきょう",line:[6783,6897,6905]}//78.
		,{name:"みなみのさんかく",line:[5671,5897,6217,5671]}//79.
		,{name:"さんかく",line:[544,622,664,544]}//80.
		,{name:"きょしちょう",line:[8540,8502,8848,126,77,9076,8848]}//81.
		,{name:"おおぐま",line:[3569,3594,3775,3888,3757,3323,3888,3775,4518,4335,4069,4033,4069,4335,4518,4377,4375,4377,4518,4554,4660,4554,4295,4301,3888,4301,4660,4905,5054,5191]}//82
		,{name:"こぐま",line:[424,6789,6322,5903,6116,5735,5563]}//83.
		,{name:"ほ",line:[3207,3485,3734,3940,4216,3786,3634,3207]}//84.
		,{name:"おとめ",line:[4517,4608,4932,4910,5264,5511,5264,4910,5107,4910,4825,4963,5338,5487,5338,4963,5056,4963,4825,4689,4540]}//85.
		,{name:"とびうお",line:[2736,3223,2803,3223,3347,3615]}//86.
		,{name:"こぎつね",line:[7405,7592]}//87.
	];
	//[HR番号,星座,バイエル符号(ギリシア文字),バイエル符号の上(下)付き数字,フラムスティード番号,赤経,赤緯,視等級(四捨五入した整数)格納値=実際の視等級+1,スペクトル分類]
	//http://www3.plala.or.jp/cielo/graffias/data/star.html
	private const STARS_ALL:Array = [
		[1,88,24,0,0,0,5,10,0,45,13,45,8,2],
		[2,88,24,0,0,0,5,4,1,0,30,11,7,4],
		[3,66,24,0,33,0,5,20,1,5,42,27,6,5],
		[4,61,24,0,86,0,5,42,0,13,23,46,7,4],
		[5,88,24,0,0,0,6,16,0,58,26,12,7,4],
		[6,88,24,0,0,0,6,19,1,49,4,30,7,4],
		[7,13,24,0,10,0,6,27,0,64,11,46,7,1],
		[8,88,24,0,0,0,6,37,0,29,1,17,7,5],
		[9,88,24,0,0,0,6,50,1,23,6,27,7,2],
		[10,88,24,0,0,0,7,18,1,17,23,11,7,2],
		[11,88,24,0,0,0,7,44,1,2,32,56,7,1],
		[12,88,24,0,0,0,7,47,1,22,30,32,7,2],
		[13,88,24,0,0,0,8,4,1,33,31,46,7,5],
		[14,88,24,0,0,0,8,12,1,2,26,52,7,5],
		[15,0,0,0,21,0,8,23,0,29,5,26,3,1],
		[16,88,24,0,0,0,8,17,1,8,49,26,7,4],
		[17,88,24,0,0,0,8,41,0,36,37,36,7,3],
		[18,88,24,0,0,0,8,33,1,17,34,39,7,7],
		[19,88,24,0,0,0,8,52,0,25,27,46,7,5],
		[20,88,24,0,0,0,9,20,0,79,42,53,7,2],
		[21,13,1,0,11,0,9,11,0,59,8,59,3,3],
		[22,61,24,0,87,0,9,2,0,18,12,43,7,4],
		[23,88,24,0,0,0,9,2,1,54,0,7,7,4],
		[24,70,9,1,0,0,9,21,1,27,59,16,6,3],
		[25,63,4,0,0,0,9,25,1,45,44,51,5,5],
		[26,66,24,0,34,0,10,2,0,11,8,44,7,1],
		[27,0,24,0,22,0,10,19,0,46,4,20,6,3],
		[28,88,24,0,0,0,10,30,0,57,9,56,8,1],
		[29,88,24,0,0,0,10,19,1,5,14,55,7,5],
		[30,57,2,3,0,0,10,2,1,82,13,26,6,4],
		[31,88,24,0,0,0,10,43,1,12,34,48,7,5],
		[32,88,24,0,0,0,10,39,1,73,13,28,8,3],
		[33,16,24,0,6,0,11,16,1,15,28,5,6,3],
		[34,70,9,2,0,0,11,34,1,27,47,59,6,5],
		[35,70,7,0,0,0,11,44,1,35,7,59,6,3],
		[36,88,24,0,0,0,11,59,0,48,9,9,7,5],
		[37,88,24,0,0,0,12,10,1,17,56,18,6,5],
		[38,88,24,0,0,0,12,50,0,37,41,36,8,1],
		[39,61,2,0,88,0,13,14,0,15,11,1,4,1],
		[40,88,24,0,0,0,13,24,0,26,59,14,7,4],
		[41,0,24,0,23,0,13,31,0,41,2,7,7,3],
		[42,88,24,0,0,0,13,42,1,26,1,19,7,5],
		[43,88,24,0,0,0,13,44,1,26,17,5,7,5],
		[44,88,24,0,0,0,14,2,0,33,12,22,7,2],
		[45,61,21,0,89,0,14,36,0,20,12,24,6,7],
		[46,88,24,0,0,0,14,28,1,7,46,50,6,7],
		[47,88,24,0,0,0,13,19,1,84,59,39,7,7],
		[48,16,24,0,7,0,14,38,1,18,55,58,5,7],
		[49,88,24,0,0,0,14,56,0,22,17,3,7,2],
		[50,66,24,0,35,0,14,59,0,8,49,15,7,3],
		[51,88,24,0,0,0,14,55,1,9,34,11,7,1],
		[52,88,24,0,0,0,15,7,0,31,32,9,7,5],
		[53,88,24,0,0,0,15,11,0,27,16,59,7,2],
		[54,88,24,0,0,0,14,58,1,34,54,16,7,5],
		[55,88,24,0,0,0,16,14,0,76,57,3,7,1],
		[56,88,24,0,0,0,16,22,0,43,35,41,7,2],
		[57,88,24,0,0,0,16,9,1,31,26,47,7,5],
		[58,88,24,0,0,0,15,55,1,75,54,41,7,4],
		[59,66,24,0,36,0,16,34,0,8,14,24,7,4],
		[60,88,24,0,0,0,16,57,0,61,32,0,7,4],
		[61,88,24,0,0,0,16,43,1,20,12,38,7,1],
		[62,88,24,0,0,0,17,9,0,47,56,51,7,1],
		[63,0,7,0,24,0,17,6,0,38,40,54,6,2],
		[64,88,24,0,0,0,16,49,1,78,46,50,8,3],
		[65,88,24,0,0,0,17,43,0,51,25,59,7,0],
		[66,88,24,0,0,0,17,33,1,19,3,4,7,3],
		[67,88,24,0,0,0,17,48,0,1,41,20,7,5],
		[68,0,17,0,25,0,18,20,0,36,47,7,6,2],
		[69,88,24,0,0,0,18,17,0,11,12,21,7,5],
		[70,0,24,0,26,0,18,42,0,43,47,28,7,1],
		[71,88,24,0,0,0,18,38,0,31,31,2,7,2],
		[72,88,24,0,0,0,18,42,1,8,3,10,7,4],
		[73,88,24,0,0,0,18,43,1,43,14,7,7,5],
		[74,16,8,0,8,0,19,26,1,8,49,26,5,5],
		[75,88,24,0,0,0,19,42,0,40,43,47,7,5],
		[76,88,24,0,0,0,20,5,0,48,51,55,8,2],
		[77,81,5,0,0,0,20,4,1,64,52,29,5,3],
		[78,88,24,0,0,0,20,24,0,30,56,9,7,1],
		[79,88,24,0,0,0,20,46,0,32,54,41,7,5],
		[80,66,24,0,41,0,20,36,0,8,11,25,6,5],
		[81,88,24,0,0,0,20,55,0,10,58,37,8,2],
		[82,0,16,0,27,0,21,7,0,37,58,7,6,3],
		[83,81,15,0,0,0,20,39,1,69,37,30,7,1],
		[84,70,8,0,0,0,21,31,1,28,58,54,6,4],
		[85,88,24,0,0,0,21,46,1,20,3,28,6,7],
		[86,66,24,0,42,0,22,26,0,13,28,57,7,5],
		[87,88,24,0,0,0,21,29,1,77,25,37,7,5],
		[88,16,24,0,9,0,22,52,1,12,12,34,7,4],
		[89,88,24,0,0,0,23,13,1,31,2,10,8,1],
		[90,88,24,0,0,0,24,2,0,38,34,38,8,7],
		[91,88,24,0,0,0,24,16,0,52,1,12,7,1],
		[93,13,24,0,12,0,24,48,0,61,49,52,6,1],
		[94,88,24,0,0,0,24,30,1,2,13,9,7,5],
		[96,88,24,0,0,0,25,6,0,53,2,49,7,1],
		[97,66,24,0,44,0,25,24,0,1,56,23,7,4],
		[98,42,1,0,0,0,25,45,1,77,15,15,4,4],
		[99,63,0,0,0,0,26,17,1,42,18,22,3,5],
		[100,63,9,0,0,0,26,12,1,43,40,48,5,2],
		[101,16,24,0,10,0,26,37,1,0,2,59,7,4],
		[102,88,24,0,0,0,27,15,1,25,32,50,7,4],
		[103,66,24,0,47,0,28,3,0,17,53,35,6,7],
		[104,88,24,0,0,0,28,14,0,44,23,40,6,2],
		[105,70,6,0,0,0,27,56,1,33,0,26,6,7],
		[106,66,24,0,48,0,28,13,0,16,26,42,7,5],
		[107,88,24,0,0,0,28,20,0,10,11,23,7,3],
		[108,88,24,0,0,0,28,21,1,20,20,6,7,4],
		[109,88,24,0,0,0,28,26,1,39,54,54,6,7],
		[110,88,24,0,0,0,28,57,0,36,54,0,7,4],
		[111,88,24,0,0,0,28,43,1,50,31,58,7,5],
		[112,88,24,0,0,0,30,55,0,77,1,10,7,5],
		[113,88,24,0,0,0,30,20,0,59,58,38,7,1],
		[114,0,24,0,28,0,30,7,0,29,45,6,6,2],
		[115,88,24,0,0,0,29,52,1,14,51,51,7,3],
		[116,88,24,0,0,0,29,49,1,32,7,0,8,5],
		[117,16,24,0,12,0,30,2,1,3,57,26,7,7],
		[118,88,24,0,0,0,30,23,1,23,47,16,6,2],
		[119,88,24,0,0,0,30,28,1,40,56,22,7,3],
		[120,88,24,0,0,0,30,26,1,48,12,54,7,3],
		[121,13,24,0,13,0,31,25,0,66,31,10,7,1],
		[122,88,24,0,0,0,31,26,0,33,34,54,7,5],
		[123,13,10,0,14,0,31,46,0,54,31,20,6,1],
		[124,88,24,0,0,0,31,41,0,52,50,22,7,5],
		[125,63,10,1,0,0,31,25,1,48,48,13,6,2],
		[126,81,1,1,0,0,31,33,1,62,57,29,5,1],
		[127,81,1,2,0,0,31,34,1,62,57,57,6,2],
		[128,88,24,0,0,0,32,27,0,43,29,41,8,2],
		[129,88,24,0,0,0,33,19,0,70,58,54,7,2],
		[130,13,9,0,15,0,33,0,0,62,55,54,5,1],
		[131,66,24,0,52,0,32,36,0,20,17,40,6,5],
		[132,66,24,0,51,0,32,24,0,6,57,20,7,1],
		[133,88,24,0,0,0,32,35,0,27,34,50,8,2],
		[134,88,24,0,0,0,32,49,0,28,16,49,7,5],
		[135,88,24,0,0,0,33,10,0,54,53,42,7,5],
		[136,81,1,3,0,0,32,44,1,63,1,52,6,2],
		[137,13,24,0,16,0,34,25,0,66,45,1,7,1],
		[138,88,24,0,0,0,33,41,1,29,33,30,7,5],
		[139,81,7,0,0,0,33,23,1,71,15,58,7,2],
		[140,88,24,0,0,0,34,28,1,52,22,23,7,3],
		[141,88,24,0,0,0,34,55,0,13,22,16,7,5],
		[142,16,24,0,13,0,35,15,1,3,35,34,6,3],
		[143,16,24,0,14,0,35,33,1,0,30,20,7,3],
		[144,88,24,0,0,0,36,8,0,54,10,7,6,1],
		[145,88,24,0,0,0,35,55,0,13,12,24,7,3],
		[146,88,24,0,0,0,36,27,0,60,19,34,7,2],
		[147,63,10,2,0,0,35,41,1,48,0,3,7,3],
		[148,88,24,0,0,0,35,33,1,54,49,19,7,5],
		[149,88,24,0,0,0,36,20,0,27,15,17,8,1],
		[150,88,24,0,0,0,36,3,1,14,58,25,7,4],
		[151,88,24,0,0,0,36,7,1,22,50,33,7,2],
		[152,88,24,0,0,0,36,47,0,44,29,19,6,5],
		[153,13,5,0,17,0,36,58,0,53,53,49,5,1],
		[154,0,15,0,29,0,36,53,0,33,43,10,5,1],
		[155,66,24,0,53,0,36,47,0,15,13,54,7,1],
		[156,88,24,0,0,0,37,7,0,24,0,51,7,5],
		[157,88,24,0,0,0,37,21,0,35,23,58,6,4],
		[158,88,24,0,0,0,39,47,0,82,29,38,7,3],
		[159,88,24,0,0,0,37,21,1,24,46,2,7,4],
		[160,88,24,0,0,0,36,37,1,65,7,29,7,5],
		[161,88,24,0,0,0,37,31,0,3,8,7,7,5],
		[162,88,24,0,0,0,37,18,1,54,23,39,7,5],
		[163,0,4,0,30,0,38,33,0,29,18,42,5,4],
		[164,88,24,0,0,0,39,10,0,49,21,16,6,5],
		[165,0,3,0,31,0,39,20,0,30,51,39,4,5],
		[166,66,24,0,54,0,39,22,0,21,15,2,7,5],
		[167,66,24,0,55,0,39,56,0,21,26,18,6,5],
		[168,13,0,0,18,0,40,31,0,56,32,14,3,5],
		[169,88,24,0,0,0,38,41,1,73,8,14,8,2],
		[170,88,24,0,0,0,39,58,1,33,57,42,8,3],
		[171,88,24,0,0,0,39,52,1,44,47,48,7,5],
		[172,88,24,0,0,0,40,29,1,16,31,1,7,4],
		[173,88,24,0,0,0,40,33,1,23,48,16,7,4],
		[174,88,24,0,0,0,40,42,1,4,21,7,7,5],
		[175,0,24,0,32,0,41,7,0,39,27,31,6,4],
		[176,88,24,0,0,0,40,26,1,59,27,16,7,4],
		[177,88,24,0,0,0,42,3,0,66,8,51,7,4],
		[178,88,24,0,0,0,41,36,0,24,37,45,7,2],
		[179,13,13,0,19,0,42,4,0,50,30,45,6,1],
		[180,63,11,0,0,0,41,20,1,46,5,6,6,4],
		[181,88,24,0,0,0,42,31,0,58,45,12,7,1],
		[183,63,13,0,0,0,41,46,1,56,30,6,7,2],
		[184,13,15,0,20,0,43,28,0,47,1,29,6,2],
		[185,70,10,1,0,0,42,43,1,38,27,48,7,2],
		[186,88,24,0,0,0,42,42,1,60,15,45,7,5],
		[187,81,16,0,0,0,42,28,1,65,28,5,6,3],
		[188,16,1,0,16,0,43,35,1,17,59,12,3,4],
		[189,88,24,0,0,0,44,26,0,47,51,51,7,1],
		[190,88,24,0,0,0,43,50,1,12,0,42,7,5],
		[191,63,6,0,0,0,43,21,1,57,27,47,5,2],
		[192,13,24,0,21,0,45,39,0,74,59,17,7,2],
		[193,13,14,0,22,0,44,44,0,48,17,4,6,1],
		[194,16,20,1,17,0,44,11,1,10,36,34,6,5],
		[195,70,10,2,0,0,44,12,1,38,25,18,7,5],
		[196,88,24,0,0,0,45,17,0,55,13,18,6,2],
		[197,88,24,0,0,0,44,44,1,22,0,22,6,3],
		[198,88,24,0,0,0,44,57,1,42,40,36,7,3],
		[199,88,24,0,0,0,44,32,1,62,29,52,7,3],
		[200,88,24,0,0,0,46,39,0,69,19,30,7,3]

//以下略
		]
		//↓は星座の線を引く時に使った。本番版では使ってないけど、残しておく。
	//[HR番号,星座,バイエル符号(ギリシア文字),バイエル符号の上(下)付き数字,フラムスティード番号,赤経,赤緯,視等級(四捨五入した整数)格納値=実際の視等級+1,スペクトル分類]
	private const STARS:Array = [
		[271,0,6,0,18,14.3000,23.4175,5,4],//なぜか0番目が無視されるので
		[15,0,0,0,1,2.0958,29.0906,3,1],
		[21,13,1,0,-9,2.2958,59.1497,3,3],
		[25,63,4,0,127,2.3542,-45.7475,5,5],
		[39,61,2,0,68,3.3083,15.1836,4,1],
		[74,16,8,0,-12,4.8583,-8.8239,5,5],
		[77,81,5,0,127,5.0167,-64.8747,5,3],
		[98,42,1,0,127,6.4375,-77.2542,4,4],
		[99,63,0,0,127,6.5708,-42.3061,3,5],
		[126,81,1,1,127,7.8875,-62.9581,5,1],
		[154,0,15,0,9,9.2208,33.7194,5,1],
		[163,0,4,0,10,9.6375,29.3117,5,4],
		[165,0,3,0,11,9.8333,30.8608,4,5],
		[168,13,0,0,-2,10.1292,56.5372,3,5]
//以下略
]
}

関連記事:

Comments are closed.