From a47e6f7fed89a208d1bf38aeffa00b6d01fa464a Mon Sep 17 00:00:00 2001 From: Haldrup-tech Date: Thu, 24 Oct 2024 15:24:07 -0400 Subject: [PATCH] Testing new scale and sensor desgin --- __pycache__/particle.cpython-312.pyc | Bin 1456 -> 1460 bytes __pycache__/sensor.cpython-312.pyc | Bin 6867 -> 5976 bytes __pycache__/slider.cpython-312.pyc | Bin 2825 -> 2829 bytes newMain.py | 26 ++++++++++++++++--- particle.py | 4 +-- sensor.py | 37 ++++++++++----------------- 6 files changed, 38 insertions(+), 29 deletions(-) diff --git a/__pycache__/particle.cpython-312.pyc b/__pycache__/particle.cpython-312.pyc index 1d3958a37da8ff5a910125c3f26f6e3902a45fca..0ae13976f31ad13473ee0183fc16c42d97eb491d 100644 GIT binary patch delta 85 zcmdnMy@i|iG%qg~0}!0K_$^ItBX2vSv8{e+acWVqetKe2QEEwvzH?4uadB#~eo$(0 lYGP4xhJHb1dSY&BaAvN)b7e_Bh~9jdaUV0|ugOiUdH~>C9)bV> delta 81 zcmdnOy@8weG%qg~0}$-4;Yc^#$lK1SZ<%Zr6Iz^FR2<`;SX7i+QWE2mpIn-onpaXB i6Ht_&m6{A>I9HbB2WRH$8pdos&bW`6@z&%vRy_bLXdE>F diff --git a/__pycache__/sensor.cpython-312.pyc b/__pycache__/sensor.cpython-312.pyc index 12b1d873afbee4e733ab7167396d96a7c70b2981..a23ed77fd4ce1bc43662605feb441334132c6a35 100644 GIT binary patch delta 1880 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 Mnyy@@5UQj83)Z5G-~a#s diff --git a/__pycache__/slider.cpython-312.pyc b/__pycache__/slider.cpython-312.pyc index e18680ec13ed87467d6bfbdf81b01d1311ad7122..ee18fd3eab766e6405c5aa1339dfe5cc5eb0b8a2 100644 GIT binary patch delta 85 zcmeAa>lNcY&CAQh00i3oQt8(=@;+cRw$=|VPAw|dPfsi=N-ZhTcg{&HE>11h4@xag lO)N^z&@ZS=Ps~jX&dk+!t}Mw1(VJzMR&X%>ntYVY1pt#s9YO#A delta 81 zcmeAb>lEWX&CAQh00htKIMRP@I9HbB2WRH$8pdo^U|PY!cx&=WE*Ai1q#W%4 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))):