week 04 project

for this project, I wanted to make a heart shape using string art!

sketch
var dx1;
var dy1;
var dx2;
var dy2;

var tx1;
var ty1;
var tx2;
var ty2;

var qx1;
var qy1;
var qx2;
var qy2;

var numLines = 50;
var numLinesb = 50;
var numLinesc = 50;

function setup() {
    createCanvas(400, 400);
    background(255,240,250);
    //corresponds to bottom part of heart
    dx1 = (-250)/numLines; //bottom left x
    dy1 = (600)/numLines; //bottom left y
    dx2 = (300)/numLines; // top right x
    dy2 = (-700)/numLines; // top right y

    //corresponds to top right part of heart
    tx1 = (0)/numLinesb; //bottom left x
    ty1 = (-600)/numLinesb; //bottom left y
    tx2 = (200)/numLinesb; // top right x
    ty2 = (700)/numLinesb; // top right y

    //corresponds to top left part of heart
    qx1 = (-100)/numLinesc; //bottom left x
    qy1 = (500)/numLinesc; //bottom left y
    qx2 = (0)/numLinesc; // top right x
    qy2 = (-600)/numLinesc; // top right y
}

function draw() {
    //following is bottom part of heart
    stroke(200,100,100); //pink lines
    var x1 = 0; //left x
    var y1 = 200; //left y
    var x2 = 400; //right x
    var y2 = 600; //right y
    for (var i = 0; i <= numLines; i += 1) {
        
        line(x1, y1, x2, y2);
        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;
    } //following is right upper part of heart
    stroke(255,100,200); // hot pink lines
    var a1 = 200; //left x
    var b1 = 250; //left y
    var a2 = 400; //right x
    var b2 = 0; //right y
    for (var i = 0; i <= numLinesb; i += 1) {
        
        line(a1, b1, a2, b2);
        a1 += tx1;
        b1 += ty1;
        a2 += tx2;
        b2 += ty2;
    } // following is left upper part of heart
    var c1 = 0; //left x 
    var d1 = 0; //left y
    var c2 = 200; //right x
    var d2 = 250; //right y
    for (var i = 0; i <= numLinesc; i += 1) {
        
        line(c1, d1, c2, d2);
        c1 += qx1;
        d1 += qy1;
        c2 += qx2;
        d2 += qy2;
    }
    stroke(240,100,240); //pink 3
    for (var i = 2; i <= 100; i += 4){ //right side of heart
        line(320,0,2.5*i+350,200);
        line(2.5*i+350,200,320,400);
    }
    for (var i = 2; i <= 100; i += 4){ //left side of heart
        line(80,0,2.5*i-220,200);
        line(2.5*i-220,200,80,400);
    }

    noLoop();
}

Leave a Reply