Kurze Frage: Mit dem SVG-Pfad können wir 99,99% eines Kreises zeichnen und er wird angezeigt. Wenn es sich jedoch um 99,99999999% eines Kreises handelt, wird der Kreis nicht angezeigt. Wie kann es behoben werden?
Der folgende SVG-Pfad kann 99,99% eines Kreises zeichnen: (Versuchen Sie es unter http://jsfiddle.net/DFhUF/1381/ und prüfen Sie, ob Sie 4 oder nur 2 Bögen sehen. Beachten Sie jedoch, dass es sich um einen IE handelt in VML gerendert, nicht SVG, aber mit dem gleichen Problem)
M 100 100 a 50 50 0 1 0 0.00001 0
Aber wenn es 99,99999999% eines Kreises ist, wird dann überhaupt nichts angezeigt?
M 100 100 a 50 50 0 1 0 0.00000001 0
Und das ist auch bei 100% eines Kreises so (es ist immer noch ein Bogen, nicht wahr, nur ein sehr vollständiger Bogen)
M 100 100 a 50 50 0 1 0 0 0
Wie kann das behoben werden? Der Grund dafür ist, dass ich eine Funktion verwende, um einen Prozentsatz eines Bogens zu zeichnen, und wenn ich einen 99,9999% oder 100% Bogen "Sonderfall" machen muss, um die Kreisfunktion zu verwenden, wäre das irgendwie albern.
Ein Testfall für jsfiddle mit RaphaelJS finden Sie unter http://jsfiddle.net/DFhUF/1381/
(und wenn es sich um VML in IE 8 handelt, wird selbst der zweite Kreis nicht angezeigt ... Sie müssen ihn ändern 0,01)
Aktualisieren:
Dies liegt daran, dass ich einen Bogen für eine Punktzahl in unserem System rendere, sodass 3,3 Punkte 1/3 eines Kreises erhalten. 0,5 ergibt einen halben Kreis und 9,9 Punkte ergeben 99% eines Kreises. Aber was ist, wenn es in unserem System Werte gibt, die 9,99 betragen? Muss ich überprüfen, ob es sich um 99,999% eines Kreises handelt, und eine arc
Funktion oder eine circle
Funktion entsprechend verwenden? Was ist dann mit einer Punktzahl von 9.9987? Welches verwenden? Es ist lächerlich zu wissen, welche Art von Partituren einem "zu vollständigen Kreis" zugeordnet und zu einer Kreisfunktion gewechselt werden. Wenn es sich um "bestimmte 99,9%" eines Kreises oder eine 9,9987-Partitur handelt, verwenden Sie die Bogenfunktion .