SVGで星空を描く

12-5.画像

アニメ『化物語』(2009)
七夕になるといつも思い出すこのアニメ。エンディング曲の「君の知らない物語」(supercell)の歌詞にアルタイルとベガが出てくるからです。彦星と織姫ですね。

主人公がヒロインにほっぺたを、ホチキスで綴じられるシーンがあって、驚愕して視聴始めたのですが、いろいろシリーズが出てくると見なくなってしまいました。

シリーズに番号とかついていれば、わかりやすいのですが、○○物語って形で増えていくので、どの順番で見ればよいのやら。

「俺物語」は違うよなあ、と迷ってるうちに今度にしようってなります。

ということでそのうちまとめて一気に見る予定です。

まあおそらく次回の七夕の季節に見ることを思い出すと思います。

七夕なので、星空(っぽいもの)を描いてみます。
NASA(http://heasarc.gsfc.nasa.gov/)からデータをダウンロードして伸長します。

~$ wget http://heasarc.gsfc.nasa.gov/FTP/heasarc/dbase/dump/heasarc_hipparcos.tdat.gz
~$ gunzip *.gz
~$ ls 
heasarc_hipparcos.tdat
~$ head heasarc_hipparcos.tdat
<HEADER>
#
#         TABLE: heasarc_hipparcos
#      LOCATION: dbms1.gsfc.nasa.gov
#    TOTAL ROWS: 118218
#
# CREATION DATE: 2003-05-05 16:58:20
# LAST MODIFIED: 2015-03-18 11:26:54
#   EXGEST DATE: 2015-03-18 11:30:18
#
~$ 

データのことはまだよくわかってないので、適当にプロットするスクリプトです。星空っぽく見えればよかったので。

~$ perl -F'\|' -nae '
BEGIN{
print <<EOL;
<svg width="2560" height="1440">
<rect x="0" y="0" width="2560" height="1440" fill="black"></rect>
EOL
}
{if( $F[0] =~ /HIP/){
	$vmag=$F[7];
	if($vmag < 7){
		$name = $F[0];
		$ra=$F[1];
		$dec=$F[2];
		$size=1;
		$color="gray";

		$x=int $ra * 2560 / 360;
		$y=960 + int $dec * 960 / 160;

		if($vmag < 3){
			$size=2;
			$color="white";
		}
print <<EOL;
	<circle cx="$x" cy="$y" r="$size" fill="$color" />
EOL
	}
}}
END{ print "</svg>"}
' < heasarc_hipparcos.tdat > /tmp/tmp.svg
inkscape -z -e out.png /tmp/tmp.svg

hipparcos

コメント

  1. […] ← SVGで星空を描く Blenderダルマ落とし → […]

タイトルとURLをコピーしました