Короткий вопрос: используя путь SVG, мы можем нарисовать 99,99% круга, и он появится, но если он равен 99,999999999% круга, то круг не будет отображаться. Как это можно исправить?
Следующий путь SVG может нарисовать 99,99% круга: (попробуйте его на http://jsfiddle.net/DFhUF/1381/ и посмотрите, видите ли вы 4 дуги или только 2 дуги, но обратите внимание, что если это IE, он отображается в VML , не SVG, но есть похожая проблема)
M 100 100 a 50 50 0 1 0 0.00001 0
Но когда это 99,999999999% от круга, тогда вообще ничего не будет отображаться?
M 100 100 a 50 50 0 1 0 0.00000001 0
То же самое и со 100% круга (это все еще дуга, не так ли, просто очень полная дуга)
M 100 100 a 50 50 0 1 0 0 0
Как это можно исправить? Причина в том, что я использую функцию, чтобы нарисовать процент дуги, и если мне нужно «особый случай», дуга 99,9999% или 100%, чтобы использовать функцию круга, это было бы глупо.
Опять же, тестовый пример на jsfiddle с использованием RaphaelJS находится на http://jsfiddle.net/DFhUF/1381/
(и если это VML в IE 8, даже второй круг не будет отображаться ... вы должны изменить его на 0,01)
Обновление:
Это потому, что я отрисовываю дугу для оценки в нашей системе, поэтому 3,3 балла получают 1/3 круга. 0,5 получает половину круга, а 9,9 балла - 99% круга. Но что, если в нашей системе есть 9,99 баллов? Нужно ли проверять, находится ли он близко к 99,999% круга, и использовать функцию arc
или функцию circle
соответственно? Тогда как насчет 9.987? Какой использовать? Смешно знать, какие оценки будут отображаться в «слишком полный круг» и переключаться на функцию круга, а когда это «определенный 99,9%» от круга или 9,9997, тогда использовать функцию дуги .