Como um traço é reconhecido
Quando você solta um botão de desenho, o Input.Observer decide em duas etapas o que executar:
- Qual forma você desenhou? O traço é pontuado em relação aos gestos do escopo, e a melhor pontuação vence se atingir o limite de correspondência. Esta página explica esta etapa.
- Qual ação usa essa forma aqui? Os gatilhos do grupo de aplicativos para essa forma são verificados quanto a modificadores, botão de desenho, região e perfil. Consulte Regras de escopo e de recurso.
A dica ao vivo usa exatamente as mesmas duas etapas com o traço desenhado até o momento, então a dica sempre nomeia o que seria executado se você soltasse naquele instante.
Como um traço é pontuado
Cada comparação dá uma pontuação de 0 a 100:
- O traço é levemente suavizado, para remover o tremor da mão.
- Ele é reamostrado em um número fixo de pontos distribuídos uniformemente ao longo do comprimento (36 por padrão).
- A direção de cada segmento curto entre dois pontos é comparada com a direção do mesmo segmento em um exemplo salvo.
- A diferença média vira a pontuação: 100 quando todos os segmentos apontam para o mesmo lado, 0 quando todos apontam para o lado oposto.
O que isso significa quando você desenha:
| O que muda | Efeito na pontuação |
|---|---|
| O tamanho, ou o lugar da tela onde você desenha | Nenhum |
| A velocidade do desenho | Nenhum |
| A direção: da direita para a esquerda em vez de da esquerda para a direita | A direção oposta pontua perto de 0 |
| A rotação: uma forma desenhada inclinada | Menor, quanto mais inclinada, menor |
| O ponto de início: um círculo começado no alto ou embaixo, no sentido horário ou anti-horário | Cada um é uma forma diferente |
| As proporções: um L com o pé longo ou curto | Menor: cada parte ocupa uma fração diferente do traço |
Um gesto com vários exemplos é pontuado em relação a cada um deles. Pontuação de exemplos decide como essas pontuações se combinam: Melhor exemplo (o padrão) pega a mais alta; Média de todos os exemplos pega a média delas, então um traço próximo de um exemplo, mas distante dos outros, pontua menos.
Quais formas competem
Um traço não é comparado com a biblioteca inteira, somente com as formas do escopo da janela sobre a qual você pressionou:
- todas as formas que um gatilho de gesto usa no grupo de aplicativos dono da janela, e
- todas as formas que um gatilho de gesto usa no grupo Global, quando esse grupo pode recorrer ao Global (consulte Regras de escopo e de recurso).
Uma forma conta assim que qualquer gatilho desses grupos a usa, mesmo quando esse gatilho não pode ser executado no momento: a ação dele está desativada, está limitada a outro perfil, precisa de um modificador que você não pressionou, ou precisa de outro botão de desenho ou de outra região. Essa forma ainda pode vencer o traço, e então nada é executado. Uma forma que nenhum gatilho do escopo usa nunca compete, então nunca pode vencer ali.
A vencedora
- Vence a pontuação mais alta, desde que esteja igual ou acima do limite de correspondência. Se nada estiver igual ou acima do limite, nada corresponde.
- Pontuações exatamente iguais: vence a forma encontrada primeiro: as formas do próprio grupo de aplicativos antes das do Global, na ordem da lista de ações do grupo.
- Não há segunda opção. Assim que uma forma vence, só são procuradas ações para essa forma: primeiro no grupo de aplicativos, depois no Global, se o grupo recorre a ele. Se nenhuma se encaixar (por exemplo, ela precisa de Shift e você não pressionou), nada é executado, mesmo que uma forma com pontuação menor tivesse uma ação que teria se encaixado.
Vence a forma mais próxima do escopo
Como só as formas do escopo competem, um traço que claramente é outra forma ainda corresponde à forma mais próxima do escopo, se ela atingir o limite.
Exemplo: o grupo Global usa três formas: Deslizar para baixo, Deslizar para a esquerda e Marca de seleção. Sobre uma janela que nenhum grupo de aplicativos possui, você desenha Deslizar para cima. Deslizar para cima está na biblioteca, mas nenhum gatilho do escopo a usa, então ela não compete. O traço é pontuado em relação às três formas do escopo; se Marca de seleção pontuar mais alto e atingir o limite, a ação de Marca de seleção é executada.
Duas formas de impedir isso:
- Vincular a forma do escopo a uma ação que não faz nada. Ela então compete, pontua mais alto para o próprio traço e não executa nada. Quando a página Grupos de aplicativos encontra um caso assim, ela mostra a faixa "Um traço aqui pode executar a ação errada", e o botão Adicionar ação que não faz nada dela adiciona essa ação para você. Consulte Grupos de aplicativos.
- Aumentar o limite de correspondência, para que um traço precise ficar mais perto de uma forma para contar.
O próprio cartão Executa outras ações do gesto, na página Gestos, lista os mesmos casos do lado da forma.
Quando nada corresponde
Um traço que não corresponde a nenhuma ação, em nenhum escopo:
- não executa nada;
- não devolve o clique: a janela sob o ponteiro não recebe nada;
- executa o evento global Nada correspondeu, se você configurou um (por exemplo, para tocar um som). Consulte Eventos globais.
A dica desaparece enquanto o traço até ali não corresponde a nada, então a falta da dica avisa você com antecedência.
Configurações
As configurações de reconhecimento ficam na página Gestos, guia Configurações, no cartão Correspondência de gestos.
Limite de correspondência
Limite de correspondência ① é a menor pontuação que conta como correspondência: 75 por padrão, de 50 (Tolerante) a 100 (Rigoroso).
- Aumente-o quando a ação errada for executada, ou quando um traço que você não queria como gesto executar algo. Traços descuidados passam a não corresponder a nada com mais frequência.
- Diminua-o quando um traço que você queria como gesto muitas vezes não corresponder a nada. Traços que não se parecem com nenhuma das suas formas passam a ser pegos pela forma mais próxima do escopo com mais frequência.
O cartão Desenhe para testar da página Gestos mostra a pontuação de um traço em relação a esse limite. Consulte A biblioteca de gestos.
Qualidade da suavização do traço
Qualidade da suavização do traço ② troca velocidade de reconhecimento por precisão. Cada opção define ao mesmo tempo o número de pontos reamostrados e a Pontuação de exemplos:
| Opção | Pontos | Pontuação de exemplos |
|---|---|---|
| Rápido | 24 | Melhor exemplo |
| Equilibrado (padrão) | 36 | Melhor exemplo |
| Preciso | 64 | Média de todos os exemplos |
Mais pontos percebem detalhes menores de uma forma. Qualquer outra combinação, definida no modo Avançado, aparece como Personalizado.
Modo Avançado. O cartão adiciona três linhas:
- Precisão da reamostragem: o número de pontos em que um traço é reamostrado, de 8 a 128 (36 por padrão).
- Pontuação de exemplos: Melhor exemplo ou Média de todos os exemplos.
- Limite de sugestão do treinamento: a pontuação, de 0 a 100 (80 por padrão), a partir da qual a janela de treinamento sugere salvar um traço como outro exemplo do gesto mais próximo em vez de como um novo gesto. Ela não afeta o reconhecimento.