kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			190328a
							rodzic
							
								
									1be98a3c2b
								
							
						
					
					
						commit
						910532d68f
					
				
										
											Plik binarny nie jest wyświetlany.
										
									
								
							| Po Szerokość: | Wysokość: | Rozmiar: 58 KiB | 
|  | @ -0,0 +1,52 @@ | ||||||
|  | #from forms import var_bar | ||||||
|  | 
 | ||||||
|  | def setup(): | ||||||
|  |     size(500, 500) | ||||||
|  |      | ||||||
|  | def draw(): | ||||||
|  |     background(200) | ||||||
|  | 
 | ||||||
|  |     a = PVector(200, 250) | ||||||
|  |     b = PVector(mouseX, mouseY) | ||||||
|  |     c = (a + b) / 2 | ||||||
|  |     ra, rb = 75, 25 | ||||||
|  |      | ||||||
|  |     noFill() | ||||||
|  |     strokeWeight(1) | ||||||
|  |     stroke(0) | ||||||
|  |     ellipse(b.x, b.y, rb*2, rb*2) | ||||||
|  |     ellipse(a.x, a.y, ra*2, ra*2) | ||||||
|  |     ellipse(c.x, c.y, ra+rb, ra+rb) | ||||||
|  |     line(a.x, a.y, b.x, b.y) | ||||||
|  |      | ||||||
|  |     strokeWeight(4) | ||||||
|  |     circ_circ_tangent(b, a, rb, ra) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |      | ||||||
|  | def circ_circ_tangent(p1, p2, r1, r2): | ||||||
|  |     d = dist(p1.x, p1.y, p2.x, p2.y)     | ||||||
|  |     ri = r1 - r2 | ||||||
|  |     if d > abs(ri): | ||||||
|  |         line_angle = atan2(p1.x - p2.x, p2.y - p1.y) | ||||||
|  |         theta = asin(ri / float(d)) | ||||||
|  |         stroke(0) | ||||||
|  |          | ||||||
|  |         x1 = cos(line_angle - theta) * r1 | ||||||
|  |         y1 = sin(line_angle - theta) * r1 | ||||||
|  |         x2 = cos(line_angle - theta) * r2 | ||||||
|  |         y2 = sin(line_angle - theta) * r2 | ||||||
|  |         line(p1.x - x1, p1.y - y1, p2.x - x2, p2.y - y2) | ||||||
|  | 
 | ||||||
|  |         x1 = -cos(line_angle + theta) * r1 | ||||||
|  |         y1 = -sin(line_angle + theta) * r1 | ||||||
|  |         x2 = -cos(line_angle + theta) * r2 | ||||||
|  |         y2 = -sin(line_angle + theta) * r2 | ||||||
|  |         line(p1.x - x1, p1.y - y1, p2.x - x2, p2.y - y2)    | ||||||
|  |         stroke(0, 255, 0)   | ||||||
|  |          | ||||||
|  |         arc(p1.x, p1.y, r1 * 2, r1 * 2, | ||||||
|  |                 PI + line_angle - theta,  line_angle + TWO_PI + theta)      | ||||||
|  |         stroke(255, 0, 0) | ||||||
|  |         arc(p2.x, p2.y,r2 * 2, r2 * 2, | ||||||
|  |                 line_angle + theta,  line_angle + PI - theta)    | ||||||
		Ładowanie…
	
		Reference in New Issue
	
	 villares
						villares