Draw separating lines
Also reduce line thickness of shapes to 1
This commit is contained in:
		@ -42,9 +42,19 @@ class SeparatingAxisTheorem:
 | 
			
		||||
        if inputs[pygame.K_e]:
 | 
			
		||||
            self.shape2.rotate((1/60) * 90)
 | 
			
		||||
 | 
			
		||||
    def draw_axis(self, surface, normal, colliding, min1, max1, min2, max2):
 | 
			
		||||
    def draw_axis(self, surface, normal, overlap, min1, max1, min2, max2):
 | 
			
		||||
        offset = scale(*rnormal(*normal), 300)
 | 
			
		||||
 | 
			
		||||
        colliding = overlap < 0
 | 
			
		||||
 | 
			
		||||
        if not colliding:
 | 
			
		||||
            # separating line
 | 
			
		||||
            dist = scale(*normal,
 | 
			
		||||
                         (min1 if min1 > min2 else min2) - overlap * 0.5)
 | 
			
		||||
            line(surface, BLUE,
 | 
			
		||||
                 add(*dist, *offset),
 | 
			
		||||
                 add(*dist, *scale(*lnormal(*normal), 1000)))
 | 
			
		||||
 | 
			
		||||
        # axis
 | 
			
		||||
        line(surface, WHITE,
 | 
			
		||||
             add(*scale(*reverse(*normal), 1000), *offset),
 | 
			
		||||
@ -92,7 +102,7 @@ class SeparatingAxisTheorem:
 | 
			
		||||
            overlap = max(min2 - max1, min1 - max2)
 | 
			
		||||
            overlaps.append(overlap)
 | 
			
		||||
 | 
			
		||||
            self.draw_axis(surface, normal, overlap < 0,
 | 
			
		||||
            self.draw_axis(surface, normal, overlap,
 | 
			
		||||
                           min1, max1, min2, max2)
 | 
			
		||||
 | 
			
		||||
        colliding = all(overlap < 0 for overlap in overlaps)
 | 
			
		||||
@ -100,5 +110,5 @@ class SeparatingAxisTheorem:
 | 
			
		||||
            text_screen(surface, WHITE, (10, HEIGHT - 20),
 | 
			
		||||
                        f"Min Distance to Resolve: {max(overlaps)}")
 | 
			
		||||
 | 
			
		||||
        self.shape1.draw(surface, YELLOW, 4)
 | 
			
		||||
        self.shape2.draw(surface, RED if colliding else WHITE, 4)
 | 
			
		||||
        self.shape1.draw(surface, YELLOW, 1)
 | 
			
		||||
        self.shape2.draw(surface, RED if colliding else WHITE, 1)
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user