From fbc1849079e4dc27b4749e48b6d7433952a96c8f Mon Sep 17 00:00:00 2001 From: garrett Date: Thu, 24 Oct 2024 09:38:37 -0400 Subject: [PATCH] Added changable scale --- __pycache__/particle.cpython-312.pyc | Bin 1460 -> 1456 bytes __pycache__/sensor.cpython-312.pyc | Bin 6871 -> 6867 bytes __pycache__/slider.cpython-312.pyc | Bin 2787 -> 2825 bytes slider.py | 51 ++++++++++++++------------- test2.py | 18 ++++++++-- 5 files changed, 42 insertions(+), 27 deletions(-) diff --git a/__pycache__/particle.cpython-312.pyc b/__pycache__/particle.cpython-312.pyc index 0ae13976f31ad13473ee0183fc16c42d97eb491d..1d3958a37da8ff5a910125c3f26f6e3902a45fca 100644 GIT binary patch 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 delta 85 zcmdnMy@i|iG%qg~0}!0K_$^ItBX2vSv8{e+acWVqetKe2QEEwvzH?4uadB#~eo$(0 lYGP4xhJHb1dSY&BaAvN)b7e_Bh~9jdaUV0|ugOiUdH~>C9)bV> diff --git a/__pycache__/sensor.cpython-312.pyc b/__pycache__/sensor.cpython-312.pyc index 23818587c526b25e669bf7d434e72164dc22cae1..12b1d873afbee4e733ab7167396d96a7c70b2981 100644 GIT binary patch delta 81 zcmca^dfAlsG%qg~0}$-4;YdHVkvE=E-#pnWCbT%Us5r(wv8X7uq$I{AKe;qFHLs*N iCZH%kD>WI&aIP%L56;ZhHH_IjpOIaX@z&(!QU(BVSsbYV delta 85 zcmca?dfk-wG%qg~0}!0K_$@7aBX2yTv9*3^acWVqetKe2QEEwvzH?4uadB#~eo$(0 lYGP4xhJHb1dSY&BaAvN)b7e_Bh~7M#kzJDU*W|@g1^^aM93(@h{qf;(Mr(BQD zx(GzFSr_@U8a(d63>Uk|A~vCHPVti96%vbMH@Ix~+~|4T#Py`-a( zzQNAZUe#DNCG5JW_C-q&VRfk-T`L-UTf)C`mPHZyJ32(JiPAG0!Mhvj8W*URE=9V)$AA2=C!Bt9@R@aTNt zX5i2PCsRL7wp$$W@p*~4sqyi*xZ>k;Cv$TtFd9wP;Zo;imi)xW${f%5nU9CreR2Yq qfs`3AY{2@8M1ibZ95%W6DWy57c14zxS8-|a%P_h#eqsQTU_}7#R~6L& delta 968 zcmah{-%C?*6u)(# zNL0R*3PyJz%uvYDgY}d>r4+cY8g~yugZ=?A=plOOdkr(C=x{jad(Qcs^F8NqV%9IY zUrhyt|? z8Bzg~$OoD1Y}_F`NzQqILfKYeA<7)a1CKl>kGYgru3uv1eY#Abhe(a?pyvZDtuswD z#hT`Gnt)nmY@R+pbJb4$A_Ww z>~e4=oD8oFCI=yPam}(pty8HkpVSqEh&@3_F{x0W6yhLaiksBzIEzF}f{Ig1(dF8e zmSoGSZHsQ-a(YpR+FcE1qEMS;6|igTaX0AHmKjveJyNCW!M~C^RR?&eb=zyv^lY9i fa*_B>wDb=K@AomSY&}S6D~t}j1K-1BxexjY8RG}k diff --git a/slider.py b/slider.py index 304e27d..f893525 100644 --- a/slider.py +++ b/slider.py @@ -7,29 +7,30 @@ RED = (255, 0, 0) class Slider: - def __init__(self, x, y, w, h, min_val, max_val, initial_val): - self.rect = pygame.Rect(x, y, w, h) - self.min_val = min_val - self.max_val = max_val - self.value = initial_val + def __init__(self, x, y, w, h, min_val, max_val, initial_val): + self.rect = pygame.Rect(x, y, w, h) + self.min_val = min_val + self.max_val = max_val + self.value = initial_val + self.grabbed = False + + def draw(self, screen): + # Draw the background + pygame.draw.rect(screen, GRAY, self.rect) + # Draw the handle (circle) + handle_x = self.rect.x + (self.value - self.min_val) / (self.max_val - self.min_val) * self.rect.width + pygame.draw.circle(screen, RED, (int(handle_x), self.rect.centery), self.rect.height // 2) + + def handle_event(self, event): + print("hi") + if event.type == pygame.MOUSEBUTTONDOWN: + if self.rect.collidepoint(event.pos): + self.grabbed = True + elif event.type == pygame.MOUSEBUTTONUP: self.grabbed = False - - def draw(self, screen): - # Draw the background - pygame.draw.rect(screen, GRAY, self.rect) - # Draw the handle (circle) - handle_x = self.rect.x + (self.value - self.min_val) / (self.max_val - self.min_val) * self.rect.width - pygame.draw.circle(screen, RED, (int(handle_x), self.rect.centery), self.rect.height // 2) - - def handle_event(self, event): - if event.type == pygame.MOUSEBUTTONDOWN: - if self.rect.collidepoint(event.pos): - self.grabbed = True - elif event.type == pygame.MOUSEBUTTONUP: - self.grabbed = False - elif event.type == pygame.MOUSEMOTION: - if self.grabbed: - mouse_x = event.pos[0] - # Constrain the handle within the slider - new_value = (mouse_x - self.rect.x) / self.rect.width * (self.max_val - self.min_val) + self.min_val - self.value = max(self.min_val, min(self.max_val, new_value)) + elif event.type == pygame.MOUSEMOTION: + if self.grabbed: + mouse_x = event.pos[0] + # Constrain the handle within the slider + new_value = (mouse_x - self.rect.x) / self.rect.width * (self.max_val - self.min_val) + self.min_val + self.value = max(self.min_val, min(self.max_val, new_value)) diff --git a/test2.py b/test2.py index f295ffa..fd151fb 100644 --- a/test2.py +++ b/test2.py @@ -1,12 +1,17 @@ import pygame import sys import math +from sensor import Sensor +from particle import Particle +from slider import Slider SCREEN_WIDTH = 1352 SCREEN_HEIGHT = 878 scale = 1 * pow(10, -8) +sensor = Sensor((50*pow(10, -9)) / scale, (200 * pow(10,-9)) / scale, (300 * pow(10, -9)) / scale) + pygame.init() pygame.display.set_caption("CytoSim") @@ -20,16 +25,25 @@ while True: sys.exit() if event.type == pygame.VIDEORESIZE: screen = pygame.display.set_mode((event.w, event.h), pygame.RESIZABLE) + if event.type == pygame.MOUSEWHEEL: + print("SCROLL") + if event.y == 1: + scale = scale / 1.1 + elif event.y == -1: + scale = scale * 1.1 x, y = screen.get_size() - screen.fill((0,0,105)) + screen.fill((200,100,5)) + + sensor.generate(x, y, screen) 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))) - print((1 *pow(10, -6)) / scale) + print(scale) + #print((1 *pow(10, -6)) / scale) pygame.display.update()