Pergunta curta: usando o caminho SVG, podemos desenhar 99,99% de um círculo e ele aparece, mas quando é 99,99999999% de um círculo, o círculo não aparece. Como pode ser consertado?
O seguinte caminho SVG pode desenhar 99,99% de um círculo: (tente em http://jsfiddle.net/DFhUF/1381/ e veja se você vê 4 arcos ou apenas 2 arcos, mas observe que, se for o IE, é processado em VML, não SVG, mas tem o mesmo problema)
M 100 100 a 50 50 0 1 0 0.00001 0
Mas quando é 99,99999999% de um círculo, nada será mostrado?
M 100 100 a 50 50 0 1 0 0.00000001 0
E é o mesmo com 100% de um círculo (ainda é um arco, não é, apenas um arco muito completo)
M 100 100 a 50 50 0 1 0 0 0
Como isso pode ser corrigido? O motivo é que eu uso uma função para desenhar uma porcentagem de um arco, e se eu precisar "aplicar um caso especial" a um arco de 99,9999% ou 100% para usar a função de círculo, isso seria meio bobo.
Novamente, um caso de teste no jsfiddle usando o RaphaelJS está em http://jsfiddle.net/DFhUF/1381/
(e se for VML no IE 8, mesmo o segundo círculo não será exibido ... é necessário alterá-lo para 0,01)
Atualizar:
Isso ocorre porque eu estou renderizando um arco para uma pontuação em nosso sistema, então 3,3 pontos recebem 1/3 de um círculo. 0,5 obtém meio círculo e 9,9 pontos obtêm 99% de um círculo. Mas e se houver pontuações de 9,99 no nosso sistema? Preciso verificar se está próximo a 99,999% de um círculo e usar uma arc
função ou uma circle
função de acordo? Então, que tal uma pontuação de 9.9987? Qual usar? É ridículo precisar saber que tipo de pontuação será mapeada para um "círculo muito completo" e mudar para uma função de círculo. Quando houver "um certo 99,9%" de um círculo ou uma pontuação de 9.9987, use a função de arco. .