def createBBoxCamera(bbox,fov=35.0): atPt= bbox.center() d= bbox.xmax()-bbox.xmin() diagSqr= d*d d= bbox.ymax()-bbox.ymin() diagSqr += d*d d= bbox.zmax()-bbox.zmin() diagSqr += d*d diag= math.sqrt(diagSqr) fromPt= (atPt[0],atPt[1],atPt[2]+3*diag) mycam= starsplatter.Camera(fromPt,atPt,(0.0,1.0,0.0), fov, -0.1*diag, -5*diag) return mycam
def createBBoxCamera(bbox, fov=35.0, sepfac=1.0): atPt = bbox.center() d = bbox.xmax() - bbox.xmin() diagSqr = d * d d = bbox.ymax() - bbox.ymin() diagSqr += d * d d = bbox.zmax() - bbox.zmin() diagSqr += d * d diag = math.sqrt(diagSqr) fromPt = (atPt[0] + 0.5 * sepfac * diag, atPt[1] + 0.5 * sepfac * diag, atPt[2] + 3 * sepfac * diag) thiscam = starsplatter.Camera(fromPt, atPt, (0.0, 1.0, 0.0), fov, -1 * sepfac * diag, -5 * sepfac * diag) return thiscam
def updateCamFromControls(self): (atX, atY, atZ, atW) = self.camera.atpt() (fmX, fmY, fmZ, fmW) = self.camera.frompt() atX /= atW atY /= atW atZ /= atW atW = 1.0 dX = atX - (fmX / fmW) dY = atY - (fmY / fmW) dZ = atZ - (fmZ / fmW) sep = math.sqrt((dX * dX) + (dY * dY) + (dZ * dZ)) newSep = self.dollySlider.getValue() newDX = dX * (newSep / sep) newDY = dY * (newSep / sep) newDZ = dZ * (newSep / sep) self.camera = starsplatter.Camera( (atX + newDX, atY + newDY, atZ + newDZ, atW), (atX, atY, atZ, atW), self.camera.updir(), self.camera.fov(), -self.hitherSlider.getValue(), -self.yonSlider.getValue())
import sys import os import starsplatter def mkBunch( dx ): gp= starsplatter.StarBunch() gp.set_nstars(4) gp.set_coords(0,(0.0+dx,0.0,0.0)) gp.set_coords(1,(5.0+dx,0.0,0.0)) gp.set_coords(2,(0.0+dx,5.0,0.0)) gp.set_coords(3,(0.0+dx,0.0,5.0)) gp.set_bunch_color((0.1*dx,1.0-0.1*dx,1.0,1.0)) return gp mycam= starsplatter.Camera((0.0,0.0,30.0), (0.0,0.0,0.0), (0.0,1.0,0.0), 35.0,-20.0,-40.0) myren= starsplatter.StarSplatter() myren2= starsplatter.StarSplatter() for i in range(0,5): sb= mkBunch(0.5*i) #sbList.append(sb) sb.set_density(0.03) sb.set_scale_length(0.1) print("%d..."%i, end=' ') myren.add_stars(sb) if i%2 == 0: myren2.add_stars(sb) print("set.") myren.set_exposure_type( starsplatter.StarSplatter.ET_LOG_HSV_AUTO )
#! /usr/bin/env python import sys import os import starsplatter mycam= starsplatter.Camera((0.0,0.0,3.0), (0.0,0.0,0.0), (0.0,1.0,0.0), 30.0,-1.0,-5.0) gas= starsplatter.StarBunch() stars= starsplatter.StarBunch() dark= starsplatter.StarBunch() myren= starsplatter.StarSplatter() infile= open("../data/test.tipsy","r") starsplatter.load_tipsy_box_ascii(infile,gas,stars,dark) infile.close() gas.set_bunch_color((1.0,0.0,0.0,1.0)) gas.set_density(1.0) gas.set_scale_length(0.1) stars.set_bunch_color((0.0,1.0,0.0,1.0)) stars.set_density(1.0) stars.set_scale_length(0.1) dark.set_bunch_color((0.0,0.0,1.0,1.0)) dark.set_density(0.1) dark.set_scale_length(0.1) gas.dump(sys.stderr) myren.set_image_dims(640,480) myren.set_camera(mycam) myren.set_debug(True)
def createDefaultCamera(): mycam = starsplatter.Camera((-5.0, -9.0, 3.0), (0.0, 0.0, 0.0), (0.0, 0.0, 1.0), 35.0, -1.0, -50.0) return mycam
#! /usr/bin/env python import sys import os import starsplatter filename = sys.argv[1] mycam = starsplatter.Camera((-5.0, -9.0, 3.0), (0.0, 0.0, 0.0), (0.0, 0.0, 1.0), 35.0, -1.0, -50.0) # I think disk1 and bulge1 are Milky Way, disk2 and bulge2 are Andromeda disk1 = starsplatter.StarBunch() disk2 = starsplatter.StarBunch() bulge1 = starsplatter.StarBunch() bulge2 = starsplatter.StarBunch() infile = open(filename, "r") outList = starsplatter.load_dubinski(infile, [disk1, disk2, bulge1, bulge2]) infile.close() myren = starsplatter.StarSplatter() myren.set_image_dims(640, 480) myren.set_camera(mycam) myren.set_exposure_type(starsplatter.StarSplatter.ET_LOG_AUTO) myren.set_exposure_scale(0.5) myren.set_debug(1) disk1.set_bunch_color((0.8, 0.5, 1.0, 1.0)) disk1.set_density(0.00002) disk1.set_exp_constant(1000.0) disk1.dump(sys.stderr)