88星座
疲れた。一番大変だったのは星座の線。
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]
//以下略
]
}




