TASK 04 by SAPNA SINGH

CODE for the CHARACTER : The gliding BUTTERFLY

 

function character(S,pos,Hwidth,Hheight){
var pos = new Array(Xhead,Yhead);
var Xhead = Math.random();
var Yhead = Math.random();
// Hheight is not included in the overall design of the character

if ((Xhead >.3) && (Xhead<.9)){
// blue wing
var w1 = new Array(Xhead,Yhead);
var w2 = new Array(Xhead+Hwidth,Yhead-Hwidth);
var w3 = new Array(Xhead-Hwidth,Yhead-(Hwidth*.5));
var w = new Array(w1,w2,w3);
S.setPenColor(0,1,1);
S.drawRegion(true,w);
//wing outline
S.setPenWeight(.01);
S.setPenColor(0,0,0);
S.drawRegion(false,w);


// yellow wing
var w4 = new Array(Xhead+(Hwidth*1.5),Yhead-(Hwidth*.5));
var w5 = new Array(Xhead-(Hwidth*.5),Yhead-(Hwidth*.75));
var wn = new Array(w1,w4,w5);
S.setPenColor(1,1,0);
S.drawRegion(true,wn);
// wing outline
S.setPenWeight(.01);
S.setPenColor(0,0,0);
S.drawRegion(false,wn);

//body
S.setPenColor(.1,.1,.1);
S.setpenWeight(.02);
S.drawLine(Xhead-(Hwidth*.5),Yhead,Xhead+Hwidth,Yhead);


//head
S.setPenColor(.1,.1,.1);
S.drawOval(true,Xhead-(Hwidth*.5),Yhead,Hwidth/10);

}


}

CODE for Task04:

// The background for the composition is composed of flowers and the oval-winged //butterflies

#include "Canvas.as"

var S = new Canvas();
var S1 = new Canvas();
var S2 = new Canvas();
S2.setOpacity(.8);


// flowers for the background
function Flower(S, pos, width) {
flowersize = width;
centerX = Math.random();
centerY = Math.random();
var pos = new Array(centerX,centerY);

// stem of the flower
S.setPenWeight(flowerSize*.2);
S.setPenColor(.1, .8, .2);
S.drawLine(centerX, centerY, centerX, 1);
var fill = true;
var unfill = false;
S.setPenColor(.2, 0, 0);
// center of the flower
S.drawOval(fill, centerX, centerY, flowerSize/10);
// distance of petal centers from flower center;
var cShift = flowerSize*.5;
S.setPenColor(.8, 0, 0);
// left petal
S.drawOval(fill, centerX-cShift, centerY, flowerSize*.4, flowerSize*.2);
// right petal
S.drawOval(fill, centerX+cShift, centerY, flowerSize*.4, flowerSize*.2);
// top petal
S.drawOval(fill, centerX, centerY-cShift, flowerSize*.2, flowerSize*.4);
// bottom petal
S.drawOval(fill, centerX, (centerY+cShift), flowerSize*.2, flowerSize*.4);
}


// butterflies in the background
function butterFly(S, pos, butterflySize) {
var pos = new Array(headX,headY);
var fill = true;
var unfill = false;
width = butterflySize;
height = butterflySize*.9;
// draw head
headX = Math.random();
headY = Math.random();

if (headX > .3){
S.setPenWeight(width/25);
S.setPenColor(0, .3, 0);
S.drawOval(fill, headX, headY, width/20, width/20);
// draw body
S.setPenWeight(width/10);
S.drawLine(headX, headY, headX, (headY+height+.015));
// drawWings
// top left larger Wings


S.setPenColor(1, .8, .8);
S.drawOval(fill, headX-(butterflySize/3), headY+(height/3), width*.4, height*.4);
// lines on the large wings
S.setPenWeight(width/25);
S.setPenColor(0, 0,0);
lineWidth = width*.4;
lineHeight = height*.4;
for (i=0; i<4; i++) {

S.drawOval(unfill, headX-(butterflySize/3), headY+(height/3), lineWidth, lineHeight);
lineWidth = lineWidth*.7;
lineHeight = lineHeight*.7;
}

// bottom small Wings
// bottom left smaller Wings


S.setPenColor(1, .6, 0);
S.drawOval(fill, headX-(butterflySize/3), headY+(height*.9), width*.3, height*.3);
// lines on the small wings
S.setPenWeight(width/30);
S.setPenColor(0, 0, 1);
lineSmallWidth = width*.3;
lineSmallHeight = height*.3;
ctrSmallX = headX-(butterflySize/3);
ctrSmallY = headY+(height*.9);
for (i=0; i<3; i++) {

S.drawOval(unfill, ctrSmallX, ctrSmallY, lineSmallWidth, lineSmallHeight);
lineSmallWidth = lineSmallWidth*.7;
lineSmallHeight = lineSmallHeight*.7;
}


// top right larger Wings

S.setPenColor(1, .8, .8);
S.drawOval(fill, headX+(butterflySize/3), headY+(height/3), width*.4, height*.4);
// lines on the large wings
S.setPenWeight(width/25);
S.setPenColor(0, 0, 0);
lineWidth = width*.4;
lineHeight = height*.4;
for (i=0; i<4; i++) {
S.drawOval(unfill, headX+(butterflySize/3), headY+(height/3), lineWidth, lineHeight);
lineWidth = lineWidth*.7;
lineHeight = lineHeight*.7;
}


// bottom right smaller Wings

S.setPenColor(1, .6, 0);
S.drawOval(fill, headX+(butterflySize/3), headY+(height*.9), width*.3, height*.3);
// lines on the small wings
S.setPenWeight(width/30);
S.setPenColor(0, 0, 1);
lineSmallWidth = width*.3;
lineSmallHeight = height*.3;
for (i=0; i<3; i++) {

S.drawOval(unfill, headX+(butterflySize/3), headY+(height*.9), lineSmallWidth, lineSmallHeight);
lineSmallWidth = lineSmallWidth*.7;
lineSmallHeight = lineSmallHeight*.7;
}
}

}

// the main character

function character(S,pos,Hwidth,Hheight){
var pos = new Array(Xhead,Yhead);
var Xhead = Math.random();
var Yhead = Math.random();
// Hheight is not included in the overall design of the character

if ((Xhead >.3) && (Xhead<.9)){
// blue wing
var w1 = new Array(Xhead,Yhead);
var w2 = new Array(Xhead+Hwidth,Yhead-Hwidth);
var w3 = new Array(Xhead-Hwidth,Yhead-(Hwidth*.5));

var w = new Array(w1,w2,w3);
S.setPenColor(0,1,1);
S.drawRegion(true,w);
//wing outline
S.setPenWeight(.01);
S.setPenColor(0,0,0);
S.drawRegion(false,w);


// yellow wing
var w4 = new Array(Xhead+(Hwidth*1.5),Yhead-(Hwidth*.5));
var w5 = new Array(Xhead-(Hwidth*.5),Yhead-(Hwidth*.75));
var wn = new Array(w1,w4,w5);
S.setPenColor(1,1,0);
S.drawRegion(true,wn);
// wing outline
S.setPenWeight(.01);
S.setPenColor(0,0,0);
S.drawRegion(false,wn);

//body
S.setPenColor(.1,.1,.1);
S.setpenWeight(.02);
S.drawLine(Xhead-(Hwidth*.5),Yhead,Xhead+Hwidth,Yhead);


//head
S.setPenColor(.1,.1,.1);
S.drawOval(true,Xhead-(Hwidth*.5),Yhead,Hwidth/10);

}

// if out of stage range then one is drawn at the center
else{

Xhead =.5;
Yhead =.5;

// blue wing
var w1 = new Array(Xhead,Yhead);
var w2 = new Array(Xhead+Hwidth,Yhead-Hwidth);
var w3 = new Array(Xhead-Hwidth,Yhead-(Hwidth*.5));

var w = new Array(w1,w2,w3);
S.setPenColor(0,1,1);
S.drawRegion(true,w);
//wing outline
S.setPenWeight(.01);
S.setPenColor(0,0,0);
S.drawRegion(false,w);

//pattern on wings



// yellow wing
var w4 = new Array(Xhead+(Hwidth*1.5),Yhead-(Hwidth*.5));
var w5 = new Array(Xhead-(Hwidth*.5),Yhead-(Hwidth*.75));
var wn = new Array(w1,w4,w5);
S.setPenColor(1,1,0);
S.drawRegion(true,wn);
// wing outline
S.setPenWeight(.01);
S.setPenColor(0,0,0);
S.drawRegion(false,wn);

//body
S.setPenColor(.1,.1,.1);
S.setpenWeight(.02);
S.drawLine(Xhead-.05,Yhead,Xhead+Hwidth,Yhead);
//head
S.setPenColor(.1,.1,.1);
S.drawOval(true,Xhead-(Hwidth*.5),Yhead,Hwidth/10);

}

}


// the Background
function Background(){
S.setBackgroundColor(.9, .8, 0);

for (i=0; i<15; i++) {

S1.setOpacity(i/15);
width = Math.random();
Flower(S1, pos, width/5);
Flower(S1, pos, width/10);
Flower(S1, pos, width/7.5);
}
for(j=0; j<3; j++){
var sizeButterfly = new Array(.2,.075,.1);
for (i=0; i<3; i++){
butterFly(S2, pos, sizeButterfly[i]);
}
}
}


// the final composition

Background();
var sizeButterfly = new Array(.2,.075,.25,.1);
for (i=0; i<4; i++){

var width = sizeButterfly[i];
var height = width;
character(S2,pos,width,height);
}