def __get_Slots(numRings, rng, vertical=1): tracks = [] tOffsets = [] # calculate fixed positions (X for vertical, Y for horizontal) fpTab = [] for i in range(numRings): fpTab.append(PythonUtil.lineupPos(i, numRings, 2./3)) # move all of the fixed positions by a random amount, # staying within bounds offset = 1 - fpTab[-1] offset = (rng.random() * (offset*2)) - offset fpTab = map(lambda x: x+offset, fpTab) for i in range(0,numRings): if vertical: getActionsFunc = RingTracks.getVerticalSlotActions else: getActionsFunc = RingTracks.getHorizontalSlotActions actions, durations = getActionsFunc(fpTab[i]) track = RingTrack.RingTrack(actions, durations) tracks.append(track) tOffsets.append((float(i)/numRings) * .5) return tracks, tOffsets, fullCirclePeriod
def __get_Slots(numRings, rng, vertical = 1): tracks = [] tOffsets = [] fpTab = [] for i in range(numRings): fpTab.append(PythonUtil.lineupPos(i, numRings, 2.0 / 3)) offset = 1 - fpTab[-1] offset = rng.random() * offset * 2 - offset fpTab = map(lambda x: x + offset, fpTab) for i in range(0, numRings): if vertical: getActionsFunc = RingTracks.getVerticalSlotActions else: getActionsFunc = RingTracks.getHorizontalSlotActions (actions, durations) = getActionsFunc(fpTab[i]) track = RingTrack.RingTrack(actions, durations) tracks.append(track) tOffsets.append((float(i) / numRings) * 0.5) return (tracks, tOffsets, fullCirclePeriod)