// Sofia Syjuco
// Section A
// smsyjuco@andrew.cmu.edu
// assignment-07-c
var nPoints = 100; // number of vertices
function setup(){
  createCanvas(400,400); // create a canvas of 400 x 400
  
}
function draw(){
  background(230); // fill background with off-white
  noStroke(); // don't draw the stroke lines
  push();// keep translate info within here
  translate(width/2, height/2); // move to the middle of the screen
  drawCardioid(); // draw the shape
  pop(); // end of translate information section
}
function drawCardioid(){
  //http://mathworld.wolfram.com/Cardioid.html
  var x; // create a variable for x coord
  var y; // create a varaiable for y coord
  // fill with colors dependant on mouse position
  fill(abs(mouseX) % 256, abs(mouseY) % 256, abs(mouseX + mouseY) % 256, 100);
  var a = 80; // size of the shape 
  var mX = constrain(mouseX, 0, width) / 100.0; // variable for using mouseX position
  var mY = constrain(mouseY, 0, height) / 100.0; // variable for using mouseY position
  beginShape(); // begin drawing the shape
  for (var i = 0; i < nPoints; i++){ // draw as many vertices as nPoints states
    var t = map(i, 0, nPoints, 0, TWO_PI); // parameter for function that varies with i
    x = a * (cos(t + mX) * (1-(cos(t + mX)))); // finding the x for the vertex
    y = a * (sin(t + mY) * (1-(cos(t + mY)))); // finding the y for the vertex
    vertex(x,y);// draw a vertex at these points
  }
  endShape(CLOSE); // close the shape
}
To create this shape, I looked through the curve website for an interesting curve, and used it in my code. I played around with seeing what I could effect with mouseX and mouseY, placing them in different areas to experiment and seeing exactly how the shape would change each time. I found this project a really interesting challenge, as we haven’t worked with equations like this before. It was difficult to try and understand just how to implement this in our code, and I found the examples particularly helpful to establish the base of the code- before playing around with different values to make it unique.
![[OLD – FALL 2016] 15-104  • COMPUTING for CREATIVE PRACTICE](../../../../wp-content/uploads/2020/08/stop-banner.png) 
					



