fatik – Asemic

The fact that this project was an exploration of type was super exciting. I immediately thought of different ways that I could dissect type and study the different forms of a variety of typefaces. I couldn’t really do this for Friday, but this is something I would like to do in the near future. Because we had to plot our typography, I thought that it’d be better to bust something out instead of staying up too late so that I know the overall process of using the plotter and learning to export a vector straight from processing.

I misunderstood the point of the project was to learn to export vectors from processing. I think that I just got really excited about the concept of creating asemic type and creating the layout with my characters. I was definitely thinking more of what the final piece was going to be rather than the specific process of getting there.

 

        

These are some layouts I made from letters that were generated. I didn’t code the layout which was not part of the assignment. I need to code this later on. I’m using these layouts as plans for me to improve my code.

 

PGraphics offscreenGraphics;
PFont bigFont;
import processing.pdf.*;
boolean bRecordingPDF;
int pdfOutputCount = 0;
 
void setup(){
size(1500,1125);
offscreenGraphics = createGraphics(width, height);
bigFont = createFont("Arial Black", 300);
renderGradientIntoOffscreenGraphics();
frameRate(1);
bRecordingPDF = true;
}
 
void keyPressed() {
// When you press a key, it will initiate a PDF export
bRecordingPDF = true;
}
 
void draw(){
if (bRecordingPDF) {
background(255); // this should come BEFORE beginRecord()
beginRecord(PDF, "myName_" + pdfOutputCount + ".pdf");
 
 
//image(offscreenGraphics, 0,0);
 
int nPoints = 4000;
stroke(0);
strokeWeight(5);
//fill(0);
for (int i=0; i<nPoints; i++){
int randomX = (int) random(width);
int randomY = (int) random(height);
color colorAtTestLocation = offscreenGraphics.get(randomX, randomY);
float brightnessAtTestLoc = brightness(colorAtTestLocation); //0...255
float probability01 = map(brightnessAtTestLoc, 0,255, 0,1);
float aRandom01 = random(0,1);
 
if (aRandom01 < probability01){
//point(randomX, randomY);
//rect(randomX,randomY, 50,50);
//ellipse(randomX, randomY,30,30);
//line(300, randomY, randomX, randomY );
//line(randomX, randomY, randomX, 200);
//line(random(200,800), randomY, randomX, randomY);
line(randomX, random(300,600), randomX, randomY);
 
}
}
endRecord();
bRecordingPDF = false;
pdfOutputCount++;
}
}
 
void renderGradientIntoOffscreenGraphics(){
offscreenGraphics.beginDraw();
offscreenGraphics.background(0);
 
////gradient off screen graphics
//for (int i=0; i<offscreenGraphics.width; i++){
// float gray = map(i, 0,offscreenGraphics.width, 0,100);
// offscreenGraphics.stroke(gray);
// offscreenGraphics.line(i,0, i,offscreenGraphics.height);
//}
 
offscreenGraphics.fill(255);
offscreenGraphics.textFont(bigFont);
//offscreenGraphics.text("Fk", 100,300);
 
String[] arrayLetter = {"F", "A", "I", "T", "H", "K"};
for (int i=0; i < arrayLetter.length; i++){
offscreenGraphics.text(arrayLetter[0], 100 ,height/2);
offscreenGraphics.text(arrayLetter[1], 350 ,height/2);
offscreenGraphics.text(arrayLetter[2], 630 ,height/2);
offscreenGraphics.text(arrayLetter[3], 800 ,height/2);
offscreenGraphics.text(arrayLetter[4], 1050 ,height/2);
 
 
}
 
offscreenGraphics.endDraw();
}