Коротке запитання: використовуючи шлях SVG, ми можемо намалювати 99,99% кола, і воно з’явиться, але коли це 99,99999999% кола, то коло не з’явиться. Як це можна виправити?
Наступний шлях 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,9987? Який використовувати? Смішно потрібно знати, які показники будуть відображати на "занадто повне коло" і переходити на функцію кола, а коли це "певні 99,9%" кола або 9,9987 бал, а потім використовувати функцію дуги .