Stap 5: 3D LED Software - patronen
Patronen en algoritmen worden gebruikt voor het genereren van de wijzigingen in de LED-display. Op elke lus van het programma schrijven we achtereenvolgens 8 verschillende lagen. We kunnen vervolgens wiskundige bewerkingen uitvoeren op de matrix waarin de afbeeldingsgegevens. Het kan op verschillende manieren worden gedaan:
- gebruik van een algoritme - als een geneste lus die één of ander soort repetitious patroon kan genereren
- opslaan op een statische afbeelding of een reeks afbeeldingen of frames die uiteindelijk een film maken zal door de Staten van de LEDs of helderheden op te slaan als een drie-dimensionale array in flash, want dit de niet-vluchtig geheugen is. We kunnen opslaan pixel voor pixel gegevens eerder dan moetend het genereren van een algoritme.
De code doorlopen een aantal patronen:
- Test patroon - variëren van helderheid van alle LEDs met behulp van de opzoektabel van een sinus-functie. U krijgt een mooie gladde sinusvormige aanpassing van de helderheid. Daarom kunnen we bepalen als er eventuele gebreken en / of LEDs misdragen in de eerste paar seconden. Het staat ons toe ook om te zien als het programma soepel functioneert.
- Vooraf ingestelde patroon - geïnitialiseerd in een 3 dimensionale ruimte met behulp van een bos van formules die in flash-geheugen zitten. Dit wordt geïnitialiseerd met een bos van objecten en dan zijn er een hele stapel van transformatie functionsincluded. Op het eerste patroon verschuiven deze gewoon de beeldruimte of de wiskundige beeldruimte neer. Wanneer u een transformatie, verschuiving u één rij of één laag in het 0 adres het adres van de tijdelijke bedrijf. We kunnen vervolgens alle waarden shuffle zonder verlies van informatie. Bijvoorbeeld, kunnen we nemen informatie uit de top, het hele scherm naar boven verplaatsen en nemen de informatie uit de top en plaatst u deze op de bodem. Kunnen we een herhalend patroon die terug in zichzelf si lijkt het voedt alsof het continu beweegt omhoog (of omlaag of links of rechts).
- Gerandomiseerde transformatie - we gebruiken die dezelfde ruimte in het volgende patroon en de verschuiving naar een gerandomiseerde transformatie. We toewijzen een transformatie of een combinatie van transformaties die de uitstraling van een ruimte willekeurig bewegen of trillen geeft over willekeurig.
- Gerandomiseerde regen patroon - toont een neerwaartse transformatie terugkerend maar als dit gebeurt, we willekeurig wijzigingen aanbrengen in de ruimte zodat het niet lijkt te worden in een lus over zichzelf en zijn voortdurend in ontwikkeling.
- Grijswaarden vertegenwoordiging van een Sinusoid - we de opzoektabel van de sinus-functie gebruiken om te bepalen van de helderheid van elke specifieke LED op basis van een voortdurend veranderende hoek. Deze hoek wordt gevoed aan de sinus-functie en op elke iteratie van de lus, de hoek wordt verhoogd tot je een constant wisselende sinus-functie met behulp van intensiteit.
- Sinus-functie - in plaats van met behulp van helderheid, hij neemt nota van de dichtstbijzijnde LED op die waarde. Denk aan een sinusgolf bovenop op de kant van de kubus en de ronde op de dichtstbijzijnde LED maar naarmate dit redelijk snel, het geeft het uiterlijk van een mooie sinus. Wij opgenomen ook een bivariate functie die voortdurend als de programma lus is morphing en laat ons toe om de richting van deze bijzondere sinusgolf wijzigen.
- Beweging van een deeltje of een bal - het als een eenvoudige physica motor die de beweging van een deeltje of een bal simuleert wordt blootgesteld aan versnelling als gevolg van zwaartekracht en sleep - het uiteindelijk vertraagt. Het is ook blootgesteld aan interference regels aan alle zijden van de kubus naast het dak zodat hierdoor het deeltje te schieten uit de ruimte en opnieuw in te voeren, beperkt door de muren en de vloer. Dit heeft een afsluitende rottend staart achter het waarmee u om te zien het traject een stuk beter.
Wanneer het deeltje dat tot stilstand is gekomen, het opnieuw wordt geïnitialiseerd met een nieuwe reeks van gerandomiseerde Cartesiaanse coördinaten en vectoren van de snelheid, en het programma begint helemaal opnieuw.