Stap 4: Graphing
U kunt grafiek in een kubus, net zoals je zou in een grafische rekenmachine.
De beste manier om grafiek is lus over alle punten in het X-Z vlak te berekenen van een functie waarde y als een functie van x en z, en stel de voxel (x, y, z). Neem een kijkje op het onderstaande voorbeeld:
float xScale=0.5; float zScale=0.3; for (float x=0; x<cube.side;x++) for (float z=0; z<cube.side; z++) { float y=map(sin(xScale*x+offset)*cos(zScale*z+offset), -1, 1, 0, cube.side); PVector point=new PVector(x, y, z); cube.setVoxel(point, cube.colorMap(y, 0, cube.side)); }
Deze functie tekent de 3D sinusoïdale vorm gezien in de geanimeerde gif. Ik berekenen een waarde van een functie, f(x,y)=sin(xScale*x+offset)*cos(zScale*z+offset), en om dingen gemakkelijk op mezelf, ik gebruik vervolgens Processing van ingebouwde functie kaart om functiewaarden tussen -1 en 1 kaart in y-waarden tussen 0 en 7. Zodra ik heb de y-waarde, gebruik ik gewoon setVoxel om te kleuren in die voxel.
Er zijn een heleboel andere 3D-functies in het voorbeeld van de grafieken in de bibliotheek van de verwerking. Neem een kijkje!