# Han Yu Project 11 Composition

click on Canvas to make spirals!

``````// Han Yu
// Section D
// hyu1@andrew.cmu.edu
// Project 11 Compostion

var ttl;

function setup() {
createCanvas(400, 400);
background(255, 200, 200);
ttl = makeTurtle(width/2, height/2);
ttl.setColor(255);
ttl.setWeight(2);
ttl.penDown();
frameRate(50);
}

function draw() {
var step = (frameCount/150);
ttl.forward(step);
ttl.left(5);
}

function mousePressed() {
ttl = makeTurtle(mouseX, mouseY);
var c = [255, 'purple', 255, 155]; //maximize the chances of getting a white stroke
ttl.setColor(c[floor(random(0,4))]);
ttl.setWeight((random(0,2)));

}

function turtleLeft(d){this.angle-=d;}function turtleRight(d){this.angle+=d;}
this.forward(-p);}function turtlePenDown(){this.penIsDown=true;}
function turtlePenUp(){this.penIsDown = false;}function turtleGoTo(x,y){
if(this.penIsDown){stroke(this.color);strokeWeight(this.weight);
line(this.x,this.y,x,y);}this.x = x;this.y = y;}function turtleDistTo(x,y){
return sqrt(sq(this.x-x)+sq(this.y-y));}function turtleAngleTo(x,y){
var absAngle=degrees(atan2(y-this.y,x-this.x));
var angle=((absAngle-this.angle)+360)%360.0;return angle;}
function turtleTurnToward(x,y,d){var angle = this.angleTo(x,y);if(angle< 180){
this.angle+=d;}else{this.angle-=d;}}function turtleSetColor(c){this.color=c;}
function turtleSetWeight(w){this.weight=w;}function turtleFace(angle){
this.angle = angle;}function makeTurtle(tx,ty){var turtle={x:tx,y:ty,
angle:0.0,penIsDown:true,color:color(128),weight:1,left:turtleLeft,
right:turtleRight,forward:turtleForward, back:turtleBack,penDown:turtlePenDown,
penUp:turtlePenUp,goto:turtleGoTo, angleto:turtleAngleTo,
turnToward:turtleTurnToward,distanceTo:turtleDistTo, angleTo:turtleAngleTo,
setColor:turtleSetColor, setWeight:turtleSetWeight,face:turtleFace};
return turtle;}``````

Spirals are my favorite patterns so I wanted to make my project with them. It was fun making variations in color and stroke but setting the steps for spirals are hard. Overall, doing this project has definitely made me more familiarized with turtles.