To create a simulated image of the night sky, we use the script in Listing 9-10.
Listing 9-10. Creating an Image ofthe Sky at Night, nightsky.py
# create a fictitious night sky from random import randrange as rr execfile('star_patch.py')
# parameters for the simulated night sky image img_size = 800
num_stars = 25
# star parameters: number of pointy edges and radius min_num_points = 5
max_num_points = 11 min_star_radius = 2 max_star_radius = 10
# star parameter 'thinness' is on a scale of 1 to 10 min_thin = 5
# draw the night sky figure(facecolor='k') cur_axes = gca()
# patch stars for i in range(num_stars):
new_star = star(rr(min_star_radius, max_star_radius), rr(o, img_size) , rr(o, img_size), 'w', \
rr(min_num_points, max_num_points), \ rr(min_thin, max_thin)/10.0) cur_axes.add_patch(new_star)
# modify axis behavior axis([0, img_size, 0, img_size])
savefig('../images/nightsky', facecolor='k', edgecolor='k')
I've imported the function randrange() from the module random and decided to rename it to rr(), which I think is clearer to read. I then define a set of values you can tweak and observe the results. The values are self-explanatory and include such values as the image size and number of stars in the image.
The patching of stars is done in the for loop, which creates a new star with random values and adds it to the current figure. I then follow up by updating the image size and removing the axes. Finally, I save the image to file. Figure 9-7 shows random output from the simulated night sky.
Figure 9-7. Simulated (random) night sky
Was this article helpful?