Я сделал дугу в Raphael
то, к чему я стремился, было всего лишь одной дугой без большого прямого угла в ней.
Итак, всего одна плавная изогнутая линия без прямого угла.
Он довольно простой и использует эллиптическую дугу Рафаэля.
Вы можете увидеть его на странице http://jsfiddle.net/mailrox/uuAjV/1/.
Вот код:
var raph = Raphael(0, 0, 1000, 1000);
var x = 150;
var y = 150;
var r = 100; //radius
var value = 100;
var maxValue = 360;
var pi = Math.PI;
var cos = Math.cos;
var sin = Math.sin;
var t = (pi/2) * 3; //translate
var rad = (pi*2 * (maxValue-value)) / maxValue + t;
var p = [
"M", x, y,
"l", r * cos(t), r * sin(t),
"A", r, r, 0, +(rad > pi + t), 1, x + r * cos(rad), y + r * sin(rad),
"z"
];
var param = {"stroke-width": 30}
var d = raph.path(p).attr(param);
Один из способов, который я сделал, - я мог замаскировать прямоугольные участки линий, но я бы предпочел не иметь этого и просто иметь некую красивую кривую, противоположную управлению как этим текущим путем, так и маской поверх.
Очень признателен за помощь с этой благодарностью!