(self, density=10, position=(0, 0, 0), size=1)
| 6 | |
| 7 | class Particles: |
| 8 | def __init__(self, density=10, position=(0, 0, 0), size=1) -> None: |
| 9 | self.density = density |
| 10 | self.position = position |
| 11 | self.size = size |
| 12 | self.density_r = 1 / density |
| 13 | self.particles = [ |
| 14 | [x * self.density_r + position[0], y * self.density_r + position[1], z * self.density_r + position[2],] |
| 15 | for x in range(density * size) for y in range(density * size) for z in range(density * size) |
| 16 | ] |
| 17 | for particle in self.particles: |
| 18 | particle[0] += random_table[int((particle[1] + particle[2]) * self.density) % 255] * self.density_r |
| 19 | particle[1] += random_table[int((particle[0] + particle[2]) * self.density) % 255] * self.density_r |
| 20 | particle[2] += random_table[int((particle[0] + particle[1]) * self.density) % 255] * self.density_r |
| 21 | particle[0] = (particle[0] - self.position[0]) % self.size + self.position[0] |
| 22 | particle[1] = (particle[1] - self.position[1]) % self.size + self.position[1] |
| 23 | particle[2] = (particle[2] - self.position[2]) % self.size + self.position[2] |
| 24 | |
| 25 | def next_frame(self, time=0, percentage = 0.1): |
| 26 | start_index = int(len(self.particles) * random_table[time % 255]) |
nothing calls this directly
no outgoing calls
no test coverage detected