overte-HifiExperiments/interface/resources/gen_stars.py

50 lines
1.1 KiB
Python

#
# gen_stars.py
# interface
#
# Created by Tobias Schwinger on 3/22/13.
# Copyright (c) 2013 High Fidelity, Inc. All rights reserved.
#
# Input file generator for the starfield.
from random import random,randint
from math import sqrt, hypot, atan2, pi, fmod, degrees
from sys import argv,stderr
n = 10
if len(argv) > 1:
n = int(argv[1])
hemisphere=False
bars_total, bars_prev = 77, 0
for i in range(n):
# color
w = randint(30,randint(40,255))
r = max(0,min(255,w + randint(-10,70)))
g = max(0,min(255,w + randint(-20,60)))
b = max(0,min(255,w + randint(-10,100)))
# position
x,y,z = random()*2-1,random(),random()*2-1
if not hemisphere:
y = y*2-1
l = sqrt(x*x + y*y + z*z)
x /= l; y /= l; z /= l
xz = hypot(x,z)
azimuth = degrees(fmod(atan2(x,z)+pi,2*pi))
altitude = degrees(atan2(y,xz))
bars = round(bars_total*i/n)
if bars != bars_prev:
bars_prev = bars
bars = int(bars)
stderr.write('\r[%s%s]' % ('#' * bars, '-' * (bars_total-bars)))
print "%f %f #%02x%02x%02x" % (azimuth,altitude,r,g,b)
stderr.write('\r[%s]\n' % ('#' * bars_total,))