Files
SantoscopeUI/knob.py

24 lines
797 B
Python
Raw Normal View History

2025-02-23 16:17:11 +01:00
import pygame
2025-02-23 17:05:46 +01:00
import math
2025-02-23 16:17:11 +01:00
class Knob:
def __init__(self, screen):
self.screen = screen
self.radius = screen.get_width()/20
self.fill_color = (160,0,255)
2025-02-23 16:17:11 +01:00
self.position = (screen.get_width()/2, screen.get_height()/2)
self.value = 0
2025-02-23 17:05:46 +01:00
def set_value(self, value):
self.value = value
def get_pointer_position(self):
x = self.radius * math.cos((self.value * 0.8 * 2 + 0.7) * math.pi) + self.position[0]
y = self.radius * math.sin((self.value * 0.8 * 2 + 0.7) * math.pi) + self.position[1]
2025-02-23 17:05:46 +01:00
return(x, y)
2025-02-23 16:17:11 +01:00
def display(self):
2025-02-23 17:05:46 +01:00
pygame.draw.circle(self.screen, self.fill_color, self.position, self.radius)
pygame.draw.line(self.screen, "black", self.position, self.get_pointer_position(), 3)
2025-02-23 16:17:11 +01:00