#include <Adafruit_NeoPixel.h>
#define PIN 6
#define NUMPIXELS 256
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
float angle = 0;
int cube[8][3] = {
{-1, -1, -1}, {1, -1, -1}, {1, 1, -1}, {-1, 1, -1},
{-1, -1, 1}, {1, -1, 1}, {1, 1, 1}, {-1, 1, 1}
};
void setup() {
pixels.begin();
}
void loop() {
pixels.clear();
float sina = sin(angle);
float cosa = cos(angle);
for (int i = 0; i < 8; i++) {
float x = cube[i][0];
float y = cube[i][1] * cosa - cube[i][2] * sina;
float z = cube[i][1] * sina + cube[i][2] * cosa;
int px = (int)(x * 8 + 8);
int py = (int)(z * 8 + 8);
if (px >= 0 && px < 16 && py >= 0 && py < 16) {
pixels.setPixelColor(py * 16 + px, pixels.Color(255, 255, 255));
}
}
pixels.show();
angle += 0.02;
delay(50);
}