my npub expressed a centered lines the length of the line is determined by the ascii of the character and purple is letter and orange is numbers

Reply to this note

Please Login to reply.

Discussion

I like this one, you can replace the string with your npub and run it using https://processing.org

int xspacing = 0;

int lineLength = 0;

int w;

float theta = 0.0;

float period = 500.0;

float dx;

float[] yvalues;

String asciiString = "npub1tltf8es60957eawprkl4ecs2akkpe6n3wgt4tvphj4vef0mqvxasv6ve7g";

void setup() {

size(800, 400);

xspacing = width / max(1, asciiString.length());

lineLength = xspacing;

w = width - xspacing;

dx = (TWO_PI / period) * xspacing;

yvalues = new float[w / xspacing];

calcWave();

}

void draw() {

background(0);

renderWave();

}

void calcWave() {

float x = 0;

for (int i = 0; i < yvalues.length; i++) {

char c = asciiString.charAt(i % asciiString.length());

float amplitude = map(c, 0, 127, 0, height);

yvalues[i] = amplitude;

x += dx;

}

}

void renderWave() {

noFill();

strokeWeight(2);

float xOffset = width / (float) (asciiString.length() + 1);

for (int x = 0; x < yvalues.length; x++) {

char c = asciiString.charAt(x % asciiString.length());

if (Character.isDigit(c)) {

stroke(255, 165, 0);

} else {

stroke(128, 0, 128);

}

float lineY = height / 2 - yvalues[x] / 2;

line((x + 1) * xOffset, lineY, (x + 1) * xOffset, lineY + yvalues[x]);

}

}

This is great. Here's mine.