Kısa soru: SVG yolunu kullanarak bir çemberin% 99,99'unu çizebiliriz ve bu ortaya çıkar, ancak çemberin% 99,999999999'u olduğunda, çember görünmez. Nasıl düzeltilebilir?
Aşağıdaki SVG yolu bir dairenin% 99,99'unu çizebilir: ( http://jsfiddle.net/DFhUF/1381/ adresinde deneyin ve 4 yay mı yoksa yalnızca 2 yay mı gördüğünüze bakın, ancak IE ise SVG'de değil, VML'de oluşturulmuş, ancak benzer bir sorunu var)
M 100 100 a 50 50 0 1 0 0.00001 0
Ancak bir dairenin% 99,99999999'u olduğunda, hiçbir şey görünmeyecek mi?
M 100 100 a 50 50 0 1 0 0.00000001 0
Ve bu bir çemberin% 100'ü için de aynıdır (bu hala bir yay, değil mi, sadece tam bir yay)
M 100 100 a 50 50 0 1 0 0 0
Bu nasıl düzeltilebilir? Bunun nedeni, bir yayın yüzdesi çizmek için bir işlev kullanmam ve çember işlevini kullanmak için% 99,9999 veya% 100 yayı "özel duruma" ihtiyacım olursa, bu biraz saçma olur.
Yine, RaphaelJS kullanan jsfiddle üzerinde bir test durumu http://jsfiddle.net/DFhUF/1381/ adresindedir
(ve eğer IE 8'de VML ise, ikinci daire bile gösterilmeyecektir ... olarak değiştirmelisiniz. 0.01)
Güncelleme:
Bunun nedeni, sistemimizdeki bir puan için bir yay çiziyor olmam, yani 3.3 puan bir çemberin 1 / 3'ünü alıyor. 0.5 yarım daire alır ve 9.9 puan bir dairenin% 99'unu alır. Peki ya sistemimizde 9,99 puan varsa? Bir dairenin% 99,999'una yakın olup olmadığını kontrol etmeli ve buna göre bir arc
işlev veya işlev kullanmalı circle
mıyım? Peki ya 9,9987 puan? Hangisini kullanmalı? Ne tür puanların "çok tam bir daire" ile eşleneceğini ve bir daire işlevine geçeceğini bilmek ve bir çemberin "belirli bir% 99,9'u" veya bir 9,9987 puan olduğunda yay işlevini kullanmak gülünçtür .