https://editor.p5js.org/vikz/sketches/m1kfW1x7c
Observations:
- The artwork fits within a square
- Black lines on white background
- Lines are of same length and thickness
- Lines are placed at varying angles
- There is an overall flow to the image (having majority lines flowing either upwards/downwards, or flowing left/right
- Most lines are either touching one another or intersecting
- Lines near areas of negative space can be found to not touching other lines
- Many areas have repetitive lines "patterns" of some sort, with slight change of angle from one line to the next.
- Negative spaces between normal touching lines have relative similar area.
- There are random patches of absence of lines ("interruptions")
- Negative spaces "interruptions" are no more than 30% of the space.
- There are almost "columns" / "rows"; each line going down and across seem to have the same center point
- Amount of lines in each "column" / "row" ranges from roughly 45-55 lines.
Process: Originally, I had wrote three main functions (one to generate the lines themselves, one to generate a grid for which these lines would be placed, and one for calculating random holes based on noise(), to which I would then use in regards to the grid + line functions. I had run into several issues with this way, as I struggled manipulating each individual line to rotate in more "random" ways - it came down to either rotating all the lines at once, or rotating the entire canvas. I then decided to build off of Dan Shiffman's Coding Challenge #24, to which the manipulation of identical length lines were achieved through creation of a vector variable (p5.vector.fromAngle), to which he was then able to manipulate solely the vector itself by calling a rotation directly onto the vector, rather than the entire canvas. Then, through a noise function, I was able to achieve allotting "holes", or gaps in the canvas.
Although Dan Shiffman's way was very neat in achieving a series of segmented lines, I would have been more satisfied if I were to have the time to debug my own separate three functions. I believe that I would be able to achieve similar results if I could translate the way I drew lines by calling a vector, and then directly calling onto the vector to call for a rotation.