Howdy, Stranger!

We are about to switch to a new forum software. Until then we have removed the registration on this forum.

Android processing bug

edited April 2018

Hello I'm trying to make an animated wallpaper for my phone, but when I rotate the screen, the sketck gets distorted and out of the screen space.

I think this is a bug, but I want to know how to wrkarround that so my sketch work correctly.

I am using the lastest version of the android processing library, android 4.4.2.

This is when I do not rotate the screen:

This is when I rotate the screen:

This is the code:

``````int precision = 10;

float[] senos = new float[360 * precision];
float[] cosenos = new float[360 * precision];

float[] velocidad = new float[2];
float aceleracion;

void setup() {
fullScreen(P2D);
smooth(8);

stroke(255);
fill(255);

senos = calcularSenos(senos);
cosenos = calcularCosenos(cosenos);

for (int i = 0; i < velocidad.length; i++) {
velocidad[i] = random(1, 2);
}
}

void draw() {
background(0);

linea(width / 2, height, 180, height / 3);
aceleracion += .1;
}

float[] calcularSenos(float[] a) {
for (int i = 0; i < a.length; i++) {
a[i] = sin(radians((float)i * 360 / a.length));
}

return a;
}

float[] calcularCosenos(float[] a) {
for (int i = 0; i < a.length; i++) {
a[i] = cos(radians((float)i * 360 / a.length));
}

return a;
}

void linea(float principioX, float principioY, float angulo, float longitud) {
if (longitud >= 1) {
float finalX;
float finalY;

if (angulo >= 0) {
finalX = senos[(int)abs(angulo * precision % (360 * precision))] * longitud + principioX;
finalY = cosenos[(int)abs(angulo * precision % (360 * precision))] * longitud + principioY;
} else {
finalX = -senos[(int)abs(angulo * precision % (360 * precision))] * longitud + principioX;
finalY = cosenos[(int)abs(angulo * precision % (360 * precision))] * longitud + principioY;
}

line(principioX, principioY, finalX, finalY);

linea(finalX, finalY, angulo + velocidad[0] * aceleracion, longitud / 1.5);
linea(finalX, finalY, angulo - velocidad[1] * aceleracion, longitud / 1.5);
}
}
``````
Tagged: