Krótkie pytanie: używając ścieżki SVG możemy narysować 99,99% okręgu i to się pojawia, ale gdy jest to 99,999999999% okręgu, to koło się nie pojawi. Jak to naprawić?
Następująca ścieżka SVG może narysować 99,99% okręgu: (wypróbuj na http://jsfiddle.net/DFhUF/1381/ i zobacz, czy widzisz 4 łuki, czy tylko 2 łuki, ale zwróć uwagę, że jeśli to IE, to jest renderowane w VML, a nie SVG, ale mają podobny problem)
M 100 100 a 50 50 0 1 0 0.00001 0
Ale kiedy jest to 99,999999999% koła, to w ogóle nic się nie pokaże?
M 100 100 a 50 50 0 1 0 0.00000001 0
I tak samo jest ze 100% okręgu (to nadal jest łuk, prawda, tylko bardzo pełny łuk)
M 100 100 a 50 50 0 1 0 0 0
Jak można to naprawić? Powodem jest to, że używam funkcji do rysowania procentu łuku, a jeśli potrzebuję „specjalnego przypadku” 99,9999% lub 100% łuku, aby użyć funkcji okręgu, to byłoby trochę głupie.
Ponownie, przypadek testowy na jsfiddle przy użyciu RaphaelJS znajduje się pod adresem http://jsfiddle.net/DFhUF/1381/
(a jeśli jest to VML w IE 8, nawet drugie kółko się nie pokaże ... musisz zmienić to na 0,01)
Aktualizacja:
Dzieje się tak, ponieważ w naszym systemie renderuję łuk dla wyniku, więc 3,3 punktu otrzymuje 1/3 koła. 0,5 daje pół koła, a 9,9 punktów to 99% koła. Ale co, jeśli w naszym systemie są wyniki 9,99? Czy muszę sprawdzić, czy jest blisko 99,999% koła i odpowiednio użyć arc
funkcji lub circle
funkcji? A co z wynikiem 9,9987? Którego użyć? To śmieszne, gdy trzeba wiedzieć, jakiego rodzaju wyniki będą mapowane na „zbyt pełne koło” i przełączać się na funkcję koła, a kiedy jest to „pewne 99,9%” koła lub 9,9987, należy użyć funkcji łuku .