A gauge needle, of sorts!
This commit is contained in:
		
							parent
							
								
									265b27196c
								
							
						
					
					
						commit
						dbe473224b
					
				
					 1 changed files with 24 additions and 0 deletions
				
			
		| 
						 | 
					@ -55,6 +55,30 @@ class Dial(Gauge):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cr.stroke()
 | 
					        cr.stroke()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def draw_needle(self, cr: cairo.Context, min_radius: float, max_radius: float, value: float):
 | 
				
			||||||
 | 
					        angle = self.min_angle + \
 | 
				
			||||||
 | 
					            ((self.max_angle - self.min_angle) * (value / self.max_value)) \
 | 
				
			||||||
 | 
					            - self.ANGLE_OFFSET - 4 * (math.pi / 180.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        angle_start = angle - 4 * (math.pi / 180.0)
 | 
				
			||||||
 | 
					        angle_end   = angle + 4 * (math.pi / 180.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cr.set_source_rgba(1, 1, 1, 0.75)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cr.move_to(self.x + (min_radius * self.radius) * math.cos(angle_start),
 | 
				
			||||||
 | 
					                   self.y + (min_radius * self.radius) * math.sin(angle_start))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cr.line_to(self.x + (max_radius * self.radius) * math.cos(angle),
 | 
				
			||||||
 | 
					                   self.y + (max_radius * self.radius) * math.sin(angle))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cr.line_to(self.x + (max_radius * self.radius) * math.cos(angle_end),
 | 
				
			||||||
 | 
					                   self.y + (max_radius * self.radius) * math.sin(angle_end))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cr.line_to(self.x + (min_radius * self.radius) * math.cos(angle_end),
 | 
				
			||||||
 | 
					                   self.y + (min_radius * self.radius) * math.sin(angle_end))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cr.fill()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def draw_bg(self, cr: cairo.Context):
 | 
					    def draw_bg(self, cr: cairo.Context):
 | 
				
			||||||
        arc = (self.x,
 | 
					        arc = (self.x,
 | 
				
			||||||
               self.y,
 | 
					               self.y,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue