Draai Het Wiel
Typ je opties, draai het wiel
Elke regel in het vak wordt een segment. Druk op draaien, het wiel draait en vertraagt, en het segment onder de wijzer wint.
Er wordt niets geüpload. Je items leven in het browsertabblad en verdwijnen zodra je het sluit.
De winnaar wordt gekozen voordat het wiel beweegt
Dit is belangrijker dan het klinkt.
De voor de hand liggende manier om een wiel te bouwen is het een willekeurige duw te geven, het door wrijving te laten vertragen, en af te lezen wat er onder de wijzer eindigt. Die aanpak maakt het resultaat afhankelijk van afronding van de uiteindelijke hoek en van hoeveel animatieframes je apparaat kon tekenen — een trage telefoon en een snelle desktop zouden niet even eerlijk zijn.
Dit wiel doet het omgekeerde. Het trekt eerst een winnaar uit
crypto.getRandomValues(), berekent dan de exacte rotatie die dat segment onder
de wijzer laat landen, en animeert daarnaartoe. De draai is presentatie; de
trekking is al beslist en aantoonbaar uniform.
Elk segment heeft daardoor exact dezelfde kans, ongeacht hoeveel segmenten er zijn, hoe lang hun labels zijn, of op welk apparaat je zit.
Winnaar verwijderen, of het volledige wiel blijven draaien
Met winnaar verwijderen aan haalt elke draai het winnende item van het wiel. Draai herhaaldelijk en je krijgt een volgorde: eerste, tweede, derde. Goed voor het trekken van meerdere prijzen, of voor het bepalen van presentatievolgorde voor een zaal.
Met deze optie uit blijft het wiel compleet en kan dezelfde optie twee keer winnen — wat je wilt bij “waar eten we vanavond”.
Het wiel wegen door een item te herhalen
Het wiel geeft elk segment dezelfde kans, dus de manier om een optie te bevoordelen is er meer segmenten aan te geven. Een item twee keer vermelden verdubbelt zijn aandeel.
| Items | Segmenten | Kans voor Pizza |
|---|---|---|
| Pizza, Sushi, Tacos | 3 | 33% |
| Pizza, Pizza, Sushi, Tacos | 4 | 50% |
| Pizza ×3, Sushi, Tacos | 5 | 60% |
Gedupliceerde labels verschijnen meer dan eens op het wiel, wat eerlijk is — iedereen die kijkt kan de segmenten tellen en de weging zien in plaats van je op je woord te geloven. Die zichtbaarheid is precies het punt van een wiel; een verborgen weging zou het teniet doen.
Voor fijnmazige gewichten die niet netjes in segmenten passen, accepteert de
generator voor willekeurige getallen in plaats daarvan expliciete
getal:gewicht-paren.
Hoeveel segmenten leesbaar blijven
Segmenten krimpen naarmate items toenemen, en labels worden langs de straal getekend, dus er is een praktisch plafond dat ruim onder elk technisch plafond ligt.
- Tot 12 — comfortabel, labels zijn in één oogopslag te lezen
- 12 tot 20 — leesbaar, maar lange namen beginnen te dringen
- 20 tot 30 — alleen bruikbaar voor korte labels
- Boven 30 — het wiel werkt nog steeds en de trekking is nog steeds eerlijk, maar niemand kan het lezen terwijl het draait
Labels langer dan 18 tekens worden ingekort met een ellips, zodat ze binnen hun segment blijven. Als je lijst zo lang is dat het wiel onleesbaar wordt, doet de naamkiezer hetzelfde werk zonder het theater.
Toegankelijkheid en beweging
Het wiel respecteert prefers-reduced-motion. Als je systeem om minder beweging
vraagt, wordt de draaianimatie overgeslagen en verschijnt de winnaar direct. Het
resultaat is in beide gevallen identiek, omdat de trekking nooit afhing van de
animatie.
De winnaar wordt ook aangekondigd in een live region, zodat schermlezers hem voorlezen zonder dat de gebruiker ernaar hoeft te zoeken.
Waar een keuzewiel wordt gebruikt
- Beslissen — lunch, film, welk klusje
- Livestreams en klaslokalen — het draaien is het doel; mensen kijken ernaar
- Giveaways — een zichtbare trekking voelt eerlijker voor een publiek dan een getal dat verschijnt
- Icebreakers — wie beantwoordt de volgende vraag