Paso 24: continuo acoplamiento giratorio 90deg cada capa
Esto muestra un patrón de malla de seguimiento punto continuamente a través de una X, Y plano.
La malla está invertida 90deg después de cada capa se remonta.
Esto puede utilizarse para salida X, direcciones Y a los motores paso a paso.
Control del eje Z se puede Agregar a esto.
Procesamiento / / /
/**
* El punto se mueve hacia adelante y hacia atrás a través de la pantalla - incluye movimiento en la dirección X e Y
Se repite una y otra, girando 90deg cada vez que una capa se completa
toma algunos pasos impares el principio
diferentes variables se utiliza para indicar que este es en progreso
(y porque me olvidé qué variables lo estaba usando)
*/
int res = 50; resolución de impresión
int a = 10;
int b = 10;
dir_a int = 1;
int dir_b = 1;
int step_a = 1;
step_b int = 0;
int old_step_a = 1;
int old_step_b = 0;
int old_dir_a = 1;
int old_dir_b = 0;
int dir_switch = 0;
int old_dir_switch = 0;
int old_a = 0;
int old_b = 0;
int next_b = res;
int next_a = res;
void setup()
{
tamaño (200, 200);
Stroke(255);
Background(50);
}
void draw()
{
Background(50);
Si ((< 10 || una > altura - 10) & & old_step_b == 0) {}
dir_a = -1 * dir_a;
next_b = b + res;
dir_switch = 1;
}
Si ((old_dir_switch! = dir_switch) & & b < next_b) {}
step_a = 0;
STEP_B = 1;
dir_switch = 0;
}
Si (b > next_b) {}
step_a = 1;
STEP_B = 0;
next_b = b + res;
dir_switch = 0;
}
Si ((b < 10 || b > ancho - 10) & & old_step_a == 0) {}
dir_b = -1 * dir_b;
next_a = una + res;
dir_switch = 1;
}
Si ((old_dir_switch! = dir_switch) & & a < next_a) {}
STEP_B = 0;
step_a = 1;
dir_switch = 0;
}
Si (a > next_a) {}
STEP_B = 1;
step_a = 0;
next_a = una + res;
dir_switch = 0;
}
calcular la posición
un = un + dir_a * step_a;
b = b + dir_b * step_b;
punto de la pantalla
Point(b, a); Punto de sintaxis (x1, y1)
almacenar algunos valores como viejo para la comparación
old_a = a;
old_b = b;
old_step_a = step_a;
old_step_b = step_b;
old_dir_a = dir_a;
old_dir_b = dir_b;
old_dir_switch = old_dir_switch + dir_switch;
Print(b);
Print(',');
println(a);
}