diff --git a/__pycache__/particle.cpython-312.pyc b/__pycache__/particle.cpython-312.pyc index 1d3958a..0ae1397 100644 Binary files a/__pycache__/particle.cpython-312.pyc and b/__pycache__/particle.cpython-312.pyc differ diff --git a/__pycache__/sensor.cpython-312.pyc b/__pycache__/sensor.cpython-312.pyc index 12b1d87..a23ed77 100644 Binary files a/__pycache__/sensor.cpython-312.pyc and b/__pycache__/sensor.cpython-312.pyc differ diff --git a/__pycache__/slider.cpython-312.pyc b/__pycache__/slider.cpython-312.pyc index e18680e..ee18fd3 100644 Binary files a/__pycache__/slider.cpython-312.pyc and b/__pycache__/slider.cpython-312.pyc differ diff --git a/newMain.py b/newMain.py index 95e98d6..26625a8 100644 --- a/newMain.py +++ b/newMain.py @@ -9,9 +9,10 @@ from slider import Slider SCREEN_WIDTH = 1352 SCREEN_HEIGHT = 878 -scale = 1 * pow(10, -8) +scale = 1 * pow(10, -6) +unit_scale = -3 -sensor = Sensor((50*pow(10, -9)) / scale, (200 * pow(10,-9)) / scale, (300 * pow(10, -9)) / scale) +sensor = Sensor( 50 * pow(10, -6), 30 * pow(10, -6), 20 * pow(10, -6)) pygame.init() pygame.display.set_caption("CytoSim") @@ -32,16 +33,33 @@ while True: scale = scale / 1.1 elif event.y == -1: scale = scale * 1.1 + if event.type == pygame.KEYDOWN: + print("Button") + if event.key == pygame.K_UP: + scale = scale / 1.1 + elif event.key == pygame.K_DOWN: + scale = scale * 1.1 + x, y = screen.get_size() + scale_bar_size = abs((x - (x * .1)) - (x - (x * .1)) - (1 * pow(10, unit_scale) / scale)) + + print(scale_bar_size) + if int(scale_bar_size) < 40: + unit_scale += 1 + elif int(scale_bar_size) > 100: + unit_scale -= 1 + + scale_bar_end_point = (x - (x * .1)) - (1 * pow(10, unit_scale) / scale) + screen.fill((200,100,5)) - sensor.generate(x, y, screen) + sensor.display(x, y, screen, scale) pygame.draw.circle(screen, (150,255,10), (x / 2, y /2), 3 * pow(10, -6) / scale) - pygame.draw.line(screen, (255,255,255), (x - (x * .1), y - (y * .1)), ((x - (x * .1)) - (1 * pow(10, -6) / scale), y - (y * .1))) + pygame.draw.line(screen, (255,255,255), (x - (x * .1), y - (y * .1)), (scale_bar_end_point, y - (y * .1))) print(scale) #print((1 *pow(10, -6)) / scale) diff --git a/particle.py b/particle.py index 338b020..8539553 100644 --- a/particle.py +++ b/particle.py @@ -8,8 +8,8 @@ class Particle: self.rest = rest self.volume = (4/3.0) * math.pi * size * size * size - def move(self, time): - distance = self.speed * time + def move(self, time, scale): + distance = (self.speed * time) / scale return distance def partialVol(self, height): diff --git a/sensor.py b/sensor.py index 6e53002..e3dec88 100644 --- a/sensor.py +++ b/sensor.py @@ -6,33 +6,24 @@ class Sensor: self.distance = distance self.space = space self.volume = width * pow(distance, 2) + self.total_width = (4 * width) + space + self.total_height = 100 * pow(10, -6) - distance - def generate(self, screenWidth, screenHeight, screen): - self.sensor1_x = (screenWidth / 2) - (self.space / 2) - self.width - self.sensor1_y = 0 - self.sensor1_x_size = self.width - self.sensor1_y_size = (screenHeight / 2) - (self.distance / 2) + def display(self, screenWidth, screenHeight, screen, scale): + center_x = screenWidth / 2 + center_y = screenHeight / 2 + scaled_half_x = self.total_width / (2 * scale) + scaled_half_y = self.total_height / (2 * scale) + self.right_limit = center_x + scaled_half_x + self.left_limit = center_x - scaled_half_x - self.inner1 = self.sensor1_x - self.outer1 = self.inner1 + self.width + pygame.draw.line(screen, (255,255,255), (center_x - scaled_half_x, center_y - scaled_half_y), (center_x + scaled_half_x, center_y - scaled_half_y), 7) + pygame.draw.line(screen, (255,255,255), (center_x + scaled_half_x, center_y - scaled_half_y), (center_x + scaled_half_x, center_y + scaled_half_y), 7) + pygame.draw.line(screen, (255,255,255), (center_x + scaled_half_x, center_y + scaled_half_y), (center_x - scaled_half_x, center_y + scaled_half_y), 7) + pygame.draw.line(screen, (255,255,255), (center_x - scaled_half_x, center_y + scaled_half_y), (center_x - scaled_half_x, center_y - scaled_half_y), 7) - sensor1a = pygame.Rect(self.sensor1_x, self.sensor1_y, self.sensor1_x_size, self.sensor1_y_size) - sensor1b = pygame.Rect(self.sensor1_x, self.sensor1_y + self.sensor1_y_size + self.distance, self.sensor1_x_size, self.sensor1_y_size) - pygame.draw.rect(screen, (0, 0, 255), sensor1a) - pygame.draw.rect(screen, (0, 0, 255), sensor1b) - self.sensor2_x = (screenWidth / 2) + (self.space / 2) - self.sensor2_y = 0 - self.sensor2_x_size = self.width - self.sensor2_y_size = (screenHeight / 2) - (self.distance / 2) - - self.inner2 = self.sensor2_x - self.outer2 = self.inner2 + self.width - - sensor2a = pygame.Rect(self.sensor2_x, self.sensor2_y, self.sensor2_x_size, self.sensor2_y_size) - sensor2b = pygame.Rect(self.sensor2_x, self.sensor2_y + self.sensor2_y_size + self.distance, self.sensor2_x_size, self.sensor2_y_size) - pygame.draw.rect(screen, (0, 0, 255), sensor2a) - pygame.draw.rect(screen, (0, 0, 255), sensor2b) + return 0 def testSensor1(self, partCenter, particle): if (particle.size >= abs(self.inner1 - (partCenter - particle.size))) and (particle.size >= abs(self.outer1 - (partCenter - particle.size))):