Короткий вопрос: используя путь 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,99999999% от круга, то вообще ничего не покажется?
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, тогда использовать функцию дуги,