คำถามสั้น ๆ : การใช้เส้นทาง SVG เราสามารถวาด 99.99% ของวงกลมและปรากฏขึ้น แต่เมื่อเป็น 99.99999999% ของวงกลมแล้ววงกลมจะไม่ปรากฏขึ้น จะแก้ไขอย่างไร?
เส้นทาง SVG ต่อไปนี้สามารถวาดวงกลมได้ 99.99%: (ลองดูที่http://jsfiddle.net/DFhUF/1381/และดูว่าคุณเห็น 4 arcs หรือ 2 arcs เพียง 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 จากนั้นใช้ฟังก์ชันอาร์ค .