Processing 2. Креативное программирование
.pdffDILATE: . ,.
fERODE: DILATE -. .
fGRAY: .
fINVERT: .
fOPAQUE: .
fPOSTERIZE: ..
fTHRESHOLD: .
.. ,.
, ,setup() float s., 1.0setup().
import processing.video.*;
Movie m; float s;
void setup()
{
size( 640, 480 );
m = new Movie( this, "marbles.mov" ); m.loop();
s = 1.0;
}
draw image().Speed text(). movieEvent() .
130
6
void draw()
{
background( 0 );
image( m, 0, 0, width, height );
fill( 0 );
text( "Speed: " + s, 20, 20 );
}
void movieEvent( Movie m )
{
m.read();
}
mousePressed() . -mouseX v-2 2.speed() Movie.
void mousePressed()
{
s = map( mouseX, 0, width, -2, 2 ); m.speed( s );
}
, :
131
speed() Movie .1.0, .0.5, .1.0..
..
, , -float w, .
import processing.video.*;
Movie m; float w;
void setup()
{
size( 640, 480 );
m = new Movie( this, "marbles.mov" ); m.loop();
}
void draw()
{
background( 0 );
image( m, 0, 0, width, height );
fill( 0 ); noStroke();
rect( 0, 0, w, 10 );
}
132
6
movieEvent() .0 width, w .
void movieEvent( Movie m )
{
m.read();
w = map( m.time(), 0, m.duration(), 0, width );
}
mousePressed() mouseX0 jump().
void mousePressed()
{
float x = map( mouseX, 0, width, 0, m.duration() ); m.jump( x );
}
, , ., :
133
duration() Movie ,. time() . jump() .- 0 . ,- .movieEvent().
. . .
Movie, .marbles marbles2,. .
import processing.video.*;
Movie m1;
Movie m2;
void setup()
{
size( 640, 480 );
m1 = new Movie( this, "marbles.mov" ); m1.loop();
m2 = new Movie( this, "marbles2.mov" ); m2.loop();
m2.speed( 2 );
}
movieEvent() ., .
void movieEvent( Movie m )
{
if ( m == m1 ) {
134
6
m1.read();
}else { m2.read();
}
}
draw() .blend().
void draw()
{
background( 0 );
image( m1, 0, 0, width, height );
blend(m2, 0, 0, width, height, 0, 0, width, height, DIFFERENCE);
}
, , , .
135
blend() . - PImage,. x y . - , . - .,Photoshop. , : ADD, BLEND, BURN,
DARKEST, DIFFERENCE, DODGE, EXCLUSION, HARD_LIGHT, LIGHTEST, MULTIPLY,
OVERLAY, SCREEN, SOFT_LIGHT SUBTRACT. , .
136
7
:
fMinim
f-
.. , -. .
Minim, , Processing., , . :
fSonia , http://sonia.pitaru.com/
fBeads , http://www.beadsproject.net/
fEss , http://www.tree-axis.com/Ess/
Minim
, - minim. , Minim.
Sketch | Import Library | minim..
import ddf.minim.*;
import ddf.minim.signals.*; import ddf.minim.analysis.*; import ddf.minim.effects.*;
minim .. , .
fddf.minim.*: Minim., minim. .
fddf.minim.signals.*:, ..
fddf.minim.analysis.*: ..
fddf.minim.effects.*: . , , , .
, Minim, - c - . ,.
138
7
playing_audio_files.pde. -minim, , .MP3 . Processing; data.
, - setup() Minim
AudioPlayer.
Minim minim;
AudioPlayer player;
setup() minim, MP3 data.
void setup()
{
size( 640, 480 );
minim = new Minim( this );
player = minim.loadFile("song.mp3"); player.play();
}
draw() . ,.
void draw()
{
background( 255 );
float x = map(player.position(), 0, player.length(), 0, width);
stroke( 0 );
line( x, 0, x, height );
int totalSeconds = (int)(player.length()/1000) % 60;
int totalMinutes = (int)(player.length()/(1000*60)) % 60; int playheadSeconds = (int)(player.position()/1000) % 60;
int playheadMinutes = (int)(player.position()/(1000*60)) % 60;
139