MESA DE CONTROLO DA RODA / MAPA DE ESTADO
Defina entradas e leia o estado visível da roda
Este painel de decisão relaciona o editor atual da roda: limites de entradas, ordem de paleta, definições de giro, cálculo de rotação, histórico, estado de eliminação e controlos do navegador.
- 4 entradas iniciais localizadas
- 2–30 entradas · 80 caracteres
- 8 paletas · velocidade 1–10 · duração 2–15 s
Trilho de entradas e ordem de paleta
No início, o editor cria quatro entradas predefinidas localizadas. Um valor guardado pickerWheelOptions só é processado como JSON quando é um array com pelo menos duas entradas; as entradas precisam de campos string id e text, são limitadas a 30 e os rótulos são cortados a 80 caracteres. Um conjunto anterior de exatamente quatro rótulos ingleses predefinidos é substituído por rótulos localizados. Este registo não atribui resultado de recuperação a valores guardados demasiado longos ou inválidos.
01 · ENTRADA — Adicionar, remover, ordenar
Adicionar remove espaços e corta texto a 80 caracteres, até 30 entradas. Remover para em duas entradas. Ordenar usa text.localeCompare; Shuffle é Fisher–Yates com Math.random() e targetIndex = Math.floor(Math.random() * (index + 1)).
02 · PALETA — Oito conjuntos de cores
Os temas visíveis são vibrant, pastel, sunset, forest, ocean, candy, earth e neon. As cores repetem-se ciclicamente pela ordem atual de entradas.
03 · MUDANÇA — Tema reatribui ordem visível
Mudar o tema volta a atribuir as cores desse tema pela ordem atual de entradas. Ordenar e misturar também atribuem cores a partir dessa ordem.
Registo de paletas
Um tema altera as cores de segmento associadas à sequência atual; não acrescenta outro estado de entrada.
- vibrant
- pastel
- sunset
- forest
- ocean
- candy
- earth
- neon
Painel de cálculo de giro
A roda precisa de pelo menos duas entradas. Um giro parte da rotação atual e usa os valores visíveis. Durante a duração calculada, o editor emprega uma curva ease-out cubic.
01 · DEFINIÇÕES — Velocidade e duração
spinSpeed começa em 5 e aceita 1–10. spinDuration começa em 5 segundos e aceita 2–15 segundos.
02 · TEMPO — Expressão de duração
actualDuration = spinDuration * 1000 / (spinSpeed / 5).
03 · ROTAÇÃO — Intervalo de voltas
As voltas vão de 5 + spinSpeed a 8 + spinSpeed, usando Math.random() entre esses limites; a rotação total é rotations * 2 * Math.PI.
04 · SEGMENTO — Derivação do ponteiro
No fim, normalizedRotation = newRotation % (2 * Math.PI), pointerAngle = (2 * Math.PI - normalizedRotation) % (2 * Math.PI), e o índice de segmento é Math.floor(pointerAngle / anglePerOption).
Registo de saída, histórico e eliminação
Quando a animação termina, é mostrado o rótulo da entrada selecionada, o total de giros aumenta e o resultado entra no início do histórico. O ecrã conserva no máximo 10 registos de histórico.
01 · HISTÓRICO — Inserção no início, limite 10
O caminho final usa [newResult, ...previous].slice(0, 10). Cada resultado contém o texto de entrada mostrado e uma marca temporal.
02 · ELIMINAÇÃO — Cópia e remoção condicional
Ativar Elimination Mode copia as entradas atuais. Após um resultado, a sua entrada só é removida quando restam pelo menos duas; caso contrário a lista é mantida.
03 · REINICIAR — Reinicia rotação e rótulo
Reset devolve a rotação a 0 e limpa o rótulo mostrado. Com Elimination Mode ativo e entradas originais, Reset restaura essa lista copiada.
Registo de chaves e âmbito dos controlos
O editor escreve o seu estado mostrado sob chaves localStorage nomeadas. O histórico só é escrito enquanto não estiver vazio; Clear history esvazia o estado e remove a sua chave.
OPÇÕES — pickerWheelOptions
O estado das entradas é escrito como JSON após mudanças de opção. As outras preferências escritas são pickerWheelSound, pickerWheelEliminationMode, pickerWheelColorTheme, pickerWheelSpinSpeed, pickerWheelSpinDuration e pickerWheelTotalSpins.
HISTÓRICO — pickerWheelHistory
Um histórico não vazio é escrito sob pickerWheelHistory. Clear history remove pickerWheelHistory depois de definir o histórico mostrado como lista vazia.
ENTRADA / VISTA — Teclado, som, ecrã inteiro
O botão e o canvas podem iniciar um giro. Enter ou Espaço podem fazê-lo se o elemento ativo não for um INPUT. A inicialização de AudioContext é tentada após o primeiro document click e o som tem um interruptor. Ecrã inteiro usa uma API nativa quando disponível e, caso contrário, uma vista CSS de recurso, incluindo uma ramificação de deteção de iOS.
Notas de âmbito
- Este painel descreve caminhos e fórmulas atuais do editor, não uma avaliação de seleção.
- O índice de seleção é derivado da rotação final normalizada e da largura de segmento sob o ponteiro.
- O editor usa Math.random() nos caminhos de mistura e giro; esta página não caracteriza essas saídas.
- Valores guardados, inicialização de som e ecrã inteiro são descritos como caminhos de código, não como expectativas gerais de plataforma.
Continuar com controlos próximos
Cada ferramenta ligada tem a sua própria interface e caminho de estado.
- Jogar moeda
Abra a interface separada de moeda com duas faces.
- Sudoku
Abra um puzzle de grelha com controlos próprios.
- Puzzle de palavras
Abra a interface de puzzle baseada em palavras.
Perguntas sobre a mesa de controlo
Que entradas estão presentes no início?
O editor começa com quatro entradas predefinidas localizadas. pickerWheelOptions só é usado após processamento JSON como array com pelo menos duas entradas; entradas válidas precisam de id e text string, no máximo 30 são retidas e rótulos são cortados a 80 caracteres.
Que temas de cor são visíveis?
Os nomes visíveis são vibrant, pastel, sunset, forest, ocean, candy, earth e neon. As cores são atribuídas ciclicamente pela ordem atual de entradas, também após mudar tema.
Como são calculadas duração e rotação?
spinSpeed é 1–10 e spinDuration é 2–15 segundos. actualDuration = spinDuration * 1000 / (spinSpeed / 5). A rotação usa um valor entre 5 + spinSpeed e 8 + spinSpeed, depois uma curva ease-out cubic.
Como é derivada a entrada mostrada?
No fim, o código normaliza com newRotation % (2 * Math.PI), deriva pointerAngle como (2 * Math.PI - normalizedRotation) % (2 * Math.PI), e toma Math.floor(pointerAngle / anglePerOption).
O que fazem histórico e Elimination Mode?
Um resultado é acrescentado no início e o histórico é limitado a 10. Ativar Elimination Mode copia entradas atuais; após um resultado remove essa entrada só se restarem pelo menos duas. Reset restaura as copiadas quando o modo está ativo.
Que chaves são guardadas?
O editor escreve pickerWheelOptions, pickerWheelHistory quando não vazio, pickerWheelSound, pickerWheelEliminationMode, pickerWheelColorTheme, pickerWheelSpinSpeed, pickerWheelSpinDuration e pickerWheelTotalSpins. Clear history remove pickerWheelHistory.
Abrir os controlos da roleta
Defina entradas, reveja paleta e definições e use os controlos visíveis da roda.