Brock J. Stearn
Task 01
Programming for Artists
Harbour At Night
The code
/*
Programming for Artists - Assignment #1/#2
Brock J. Stearn
"Harbour at night"
*/
// Make Sky
setBackgroundColor(.01, .05, .1);
// Shore Line Variables
// Shore goes from 0 to 1 in X
// Shore y level
var sy = .8;
//Shore middle level x
var smx = .5;
// Draw Shore Line
setPenColor(.218,.179,.171);
setPenWeight(.008);
drawLine(0, sy, 1, sy);
// ** Start making Buildings and Sky **
// Building height before middle is max .72
var bbm = .68;
// Building height after middle is max .6
var bam = .6;
// Draw Buildings before middle (LEFT)
var CTR;
for ( CTR = 0 ; CTR < smx ; CTR += .002 )
{
setPenWeight(.001);
// bh stands for Building height and must meet above guidelines
var bh = math.random();
if (bh >= bbm)
{
if (bh <= sy)
{
setPenColor(.5,.5,.45);
setPenWeight(.03);
drawLine(CTR, sy , CTR , bh);
}
}
else
// Make Stars above shore line in Y
{
var s1 = math.random();
var s2 = math.random();
if (s2 < sy)
{
setPenColor(1,1,.95);
setPenWeight(.008);
drawLine (s1, s2, s1+.00001, s2+.00001);
}
}
}
// Draw Buildings after middle (RIGHT)
var CTR;
for ( CTR = .51 ; CTR < 1 ; CTR += .002 )
{
setPenWeight(.001);
var bh = math.random();
if (bh >= bam)
{
if (bh <= sy)
{
setPenColor(.5,.5,.45);
setPenWeight(.045);
drawLine(CTR, sy , CTR , bh);
}
}
else
// Make Stars above shore line in Y
{
var s1 = math.random();
var s2 = math.random();
if (s2 < sy)
{
setPenColor(1,1,.95);
setPenWeight(.008);
drawLine (s1, s2, s1+.00001, s2+.00001);
}
}
}
// Make more stars
var CTR;
for ( CTR = 0 ; CTR < 1 ; CTR += .0004 )
{
var s1 = math.random();
var s2 = math.random();
if (s2 < sy)
{
setPenColor(1,1,.95);
setPenWeight(.008);
drawLine (s1, s2, s1+.00001, s2+.00001);
}
}
// Draw Water Mass
var CTR;
for ( CTR = sy+.008 ; CTR < 1 ; CTR += .01 )
{
setPenColor(.2, .262, .356);
setPenWeight(.018);
drawLine(0, CTR, 1, CTR);
}
// Make water ripples
var CTR;
for ( CTR = 0 ; CTR < 1 ; CTR += .0002 )
{
var s1 = math.random();
var s2 = math.random();
if (s2 > sy+.009)
{
setPenColor(.7,.7,.75);
setPenWeight(.007);
drawLine (s1, s2, s1+.009, s2+.0001);
}
}
// Make water ripples close to camera
var CTR;
for ( CTR = 0 ; CTR < 1 ; CTR += .0004 )
{
var s1 = math.random();
var s2 = math.random();
if (s2 > sy+.09)
{
setPenColor(.8,.8,.85);
setPenWeight(.009);
drawLine (s1, s2, s1+.02, s2+.001);
}
}
// from Pete's original script...
// stop playback head to prevent continuous redrawing
stop ();