{"id":72629,"date":"2022-09-23T20:54:00","date_gmt":"2022-09-24T00:54:00","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/?p=72629"},"modified":"2022-09-23T20:54:00","modified_gmt":"2022-09-24T00:54:00","slug":"getting-stringy","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/2022\/09\/23\/getting-stringy\/","title":{"rendered":"getting stringy"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><div><a class=\"p5_sketch_link\" href=\"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-content\/uploads\/2022\/09\/sketch-331.js\" data-width=\"400\" data-height=\"600\">sketch<\/a><iframe src=\"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-content\/plugins\/p5-embedder\/p5_iframe.html\" class=\"p5_exampleFrame\" width=\"400\" height=\"600\"><\/iframe><pre class=\"language-javascript\"><code class=\"p5_editor language-javascript\">\/\/ Jaden Luscher\n\/\/ jluscher\n\/\/ section A\n\/\/ project 4: string art\n\n\/\/ increments along lines\nvar dx1;\nvar dy1;\nvar dx2;\nvar dy2;\nvar dx3;\nvar dy3;\nvar dx4;\nvar dy4;\n\n\/\/ line density\nvar numLines = 50;\n\n\/\/ determines location \/ quadrant of strings1 function\n\/\/ when mycount = 0, the top left quadrant is drawn\nvar mycount = 0;\n\nfunction setup() {\n    createCanvas(400, 600);\n    background(200,200,0);\n}\n\nfunction draw() {\n  dx1 = (50-100)\/numLines;\n  dy1 = (150-300)\/numLines; \/\/ split up L1\n\n  dx2 = (200-200)\/numLines;\n  dy2 = (250-50)\/numLines; \/\/ split up M1\n\n  dx3 = (350-300)\/numLines;\n  dy3 = (150-300)\/numLines; \/\/ split up R1\n\n  dx4 = (350-50)\/numLines; \/\/ split up horizontal line\n  dy4 = (600-0)\/numLines\/2;  \/\/ split up long vertical (height)\n\n  \/\/ brown lines\n  push();\n  strokeWeight(0.2);\n  stroke(\"brown\");\n  bgStrings(350, 300, 200, 0);\n  bgStrings(350, 300, 400, 0);\n  bgStrings(50, 300, 200, 0);\n  bgStrings(50, 300, 0, 0);\n  pop();\n\n  stroke(255);\n  strokeWeight(0.7);\n  outline(); \/\/ draw base lines (L1, M1, R1, L2, M2, R2)\n\n  push();\n  strings1(50, 150, 200, 250);  \/\/ call function to connect L1 to M1\n  mycount = 1;\n  strings1(350, 150, 200, 250);  \/\/ connect R1 to M1\n\n  translate(width, height); \/\/ flip canvas to mirror strings\n  rotate(PI);\n  mycount = 0;  \/\/ reset to 0\n  strings1(50, 150, 200, 250);  \/\/ L1 to M1\n  mycount = 1;  \/\/ string1 uses \"else\" conditional do draw top right quadrant\n  strings1(350, 150, 200, 250);  \/\/ R1 to M1\n  pop();\n\n  \/\/ lines at center of canvas (resemble parallelogram)\n  strings2(200, 250, 50, 300);\n  strings2(200, 350, 50, 300);\n\n  noLoop();\n}\n\nfunction outline() {\n  \/\/ top lines\n  line(50, 150, 100, 300);  \/\/ L1\n  line(200, 250, 200, 50);   \/\/ M1\n  line(350, 150, 300, 300);   \/\/ R1\n\n  \/\/ bottom lines\n  line(50, 450, 100, 300);  \/\/ L2\n  line(200, 550, 200, 350);  \/\/ M2\n  line(350, 450, 300, 300);   \/\/ R2\n\n  push();\n  strokeWeight(2);\n  line(width\/2, 0, width\/2, 250);\n  line(width\/2, height, width\/2, 350);\n  pop();\n\n  \/\/ other lines\n  line(0, height\/2, width, height\/2);   \/\/ horizontal line\n}\n\nfunction bgStrings(a, b, x, y) {\n  for (var i = 0; i &lt;= numLines*2; i += 1) {\n    line(a, b, x, y);\n    y += dy4;\n  }\n}\n\nfunction strings1(x1, y1, x2, y2) {\n  for (var i = 0; i &lt;= numLines; i += 1) {\n    line(x1, y1, x2, y2);\n    if(mycount == 0) {  \/\/ top left quadrant\n      x1 -= dx1;\n      y1 -= dy1;\n      x2 -= dx2;\n      y2 -= dy2;\n    } else {          \/\/ top right quadrant\n      x1 -= dx3;\n      y1 -= dy3;\n      x2 -= dx2;\n      y2 -= dy2;\n    }\n  }\n}\n\nfunction strings2(a, b, x, y) {\n  for (var i = 0; i &lt;= numLines; i += 1) {\n    line(a, b, x, y);\n    x += dx4;\n  }\n}\n<\/code><\/pre><\/div><\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>sketch \/\/ Jaden Luscher \/\/ jluscher \/\/ section A \/\/ project 4: string art \/\/ increments along lines var dx1; var dy1; var dx2; var dy2; var dx3; var dy3; var dx4; var dy4; \/\/ line density var numLines = 50; \/\/ determines location \/ quadrant of strings1 function \/\/ when mycount = 0, the &hellip; <a href=\"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/2022\/09\/23\/getting-stringy\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;getting stringy&#8221;<\/span><\/a><\/p>\n","protected":false},"author":741,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[102,55],"tags":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/posts\/72629"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/users\/741"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/comments?post=72629"}],"version-history":[{"count":1,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/posts\/72629\/revisions"}],"predecessor-version":[{"id":72630,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/posts\/72629\/revisions\/72630"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/media?parent=72629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/categories?post=72629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/15-104\/f2022\/wp-json\/wp\/v2\/tags?post=72629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}