mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Add Python processing examples.
This commit is contained in:
		
							
								
								
									
										63
									
								
								samples/Python/AdditiveWave.pyde
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								samples/Python/AdditiveWave.pyde
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
				
			|||||||
 | 
					"""
 | 
				
			||||||
 | 
					Additive Wave
 | 
				
			||||||
 | 
					by Daniel Shiffman. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Create a more complex wave by adding two waves together. 
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					xspacing = 8    # How far apart should each horizontal location be spaced
 | 
				
			||||||
 | 
					maxwaves = 4    # total # of waves to add together
 | 
				
			||||||
 | 
					theta = 0.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					amplitude = []  # Height of wave
 | 
				
			||||||
 | 
					# Value for incrementing X, to be calculated as a function of period and
 | 
				
			||||||
 | 
					# xspacing
 | 
				
			||||||
 | 
					dx = []
 | 
				
			||||||
 | 
					yvalues = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def setup():
 | 
				
			||||||
 | 
					    size(640, 360)
 | 
				
			||||||
 | 
					    frameRate(30)
 | 
				
			||||||
 | 
					    colorMode(RGB, 255, 255, 255, 100)
 | 
				
			||||||
 | 
					    w = width + 16
 | 
				
			||||||
 | 
					    for i in range(maxwaves):
 | 
				
			||||||
 | 
					        amplitude.append(random(10, 30))
 | 
				
			||||||
 | 
					        period = random(100, 300)  # How many pixels before the wave repeats
 | 
				
			||||||
 | 
					        dx.append((TWO_PI / period) * xspacing)
 | 
				
			||||||
 | 
					    for _ in range(w / xspacing + 1):
 | 
				
			||||||
 | 
					        yvalues.append(0.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def draw():
 | 
				
			||||||
 | 
					    background(0)
 | 
				
			||||||
 | 
					    calcWave()
 | 
				
			||||||
 | 
					    renderWave()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def calcWave():
 | 
				
			||||||
 | 
					    # Increment theta (try different values for 'angular velocity' here
 | 
				
			||||||
 | 
					    theta += 0.02
 | 
				
			||||||
 | 
					    # Set all height values to zero
 | 
				
			||||||
 | 
					    for i in range(len(yvalues)):
 | 
				
			||||||
 | 
					        yvalues[i] = 0
 | 
				
			||||||
 | 
					    # Accumulate wave height values
 | 
				
			||||||
 | 
					    for j in range(maxwaves):
 | 
				
			||||||
 | 
					        x = theta
 | 
				
			||||||
 | 
					        for i in range(len(yvalues)):
 | 
				
			||||||
 | 
					            # Every other wave is cosine instead of sine
 | 
				
			||||||
 | 
					            if j % 2 == 0:
 | 
				
			||||||
 | 
					                yvalues[i] += sin(x) * amplitude[j]
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                yvalues[i] += cos(x) * amplitude[j]
 | 
				
			||||||
 | 
					            x += dx[j]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def renderWave():
 | 
				
			||||||
 | 
					    # A simple way to draw the wave with an ellipse at each location
 | 
				
			||||||
 | 
					    noStroke()
 | 
				
			||||||
 | 
					    fill(255, 50)
 | 
				
			||||||
 | 
					    ellipseMode(CENTER)
 | 
				
			||||||
 | 
					    for x, v in enumerate(yvalues):
 | 
				
			||||||
 | 
					        ellipse(x * xspacing, height / 2 + v, 16, 16)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										29
									
								
								samples/Python/MoveEye.pyde
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								samples/Python/MoveEye.pyde
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					"""
 | 
				
			||||||
 | 
					 * Move Eye. 
 | 
				
			||||||
 | 
					 * by Simon Greenwold.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * The camera lifts up (controlled by mouseY) while looking at the same point.
 | 
				
			||||||
 | 
					 """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def setup():
 | 
				
			||||||
 | 
					    size(640, 360, P3D)
 | 
				
			||||||
 | 
					    fill(204)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def draw():
 | 
				
			||||||
 | 
					    lights()
 | 
				
			||||||
 | 
					    background(0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Change height of the camera with mouseY
 | 
				
			||||||
 | 
					    camera(30.0, mouseY, 220.0,  # eyeX, eyeY, eyeZ
 | 
				
			||||||
 | 
					           0.0, 0.0, 0.0,        # centerX, centerY, centerZ
 | 
				
			||||||
 | 
					           0.0, 1.0, 0.0)        # upX, upY, upZ
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    noStroke()
 | 
				
			||||||
 | 
					    box(90)
 | 
				
			||||||
 | 
					    stroke(255)
 | 
				
			||||||
 | 
					    line(-100, 0, 0, 100, 0, 0)
 | 
				
			||||||
 | 
					    line(0, -100, 0, 0, 100, 0)
 | 
				
			||||||
 | 
					    line(0, 0, -100, 0, 0, 100)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user