|
1 | 1 | /** |
2 | 2 | * vivus - JavaScript library to make drawing animation on SVG |
3 | | - * @version v0.4.1 |
| 3 | + * @version v0.4.2 |
4 | 4 | * @link https://github.com/maxwellito/vivus |
5 | 5 | * @license MIT |
6 | 6 | */ |
@@ -123,10 +123,28 @@ Pathformer.prototype.rectToPath = function (element) { |
123 | 123 | width = parseFloat(element.width) || 0, |
124 | 124 | height = parseFloat(element.height) || 0; |
125 | 125 |
|
126 | | - newElement.d = 'M' + x + ' ' + y + ' '; |
127 | | - newElement.d += 'L' + (x + width) + ' ' + y + ' '; |
128 | | - newElement.d += 'L' + (x + width) + ' ' + (y + height) + ' '; |
129 | | - newElement.d += 'L' + x + ' ' + (y + height) + ' Z'; |
| 126 | + if (element.rx || element.ry) { |
| 127 | + var rx = parseInt(element.rx, 10) || -1, |
| 128 | + ry = parseInt(element.ry, 10) || -1; |
| 129 | + rx = Math.min(Math.max(rx < 0 ? ry : rx, 0), width/2); |
| 130 | + ry = Math.min(Math.max(ry < 0 ? rx : ry, 0), height/2); |
| 131 | + |
| 132 | + newElement.d = 'M ' + (x + rx) + ',' + y + ' ' + |
| 133 | + 'L ' + (x + width - rx) + ',' + y + ' ' + |
| 134 | + 'A ' + rx + ',' + ry + ',0,0,1,' + (x + width) + ',' + (y + ry) + ' ' + |
| 135 | + 'L ' + (x + width) + ',' + (y + height - ry) + ' ' + |
| 136 | + 'A ' + rx + ',' + ry + ',0,0,1,' + (x + width - rx) + ',' + (y + height) + ' ' + |
| 137 | + 'L ' + (x + rx) + ',' + (y + height) + ' ' + |
| 138 | + 'A ' + rx + ',' + ry + ',0,0,1,' + x + ',' + (y + height - ry) + ' ' + |
| 139 | + 'L ' + x + ',' + (y + ry) + ' ' + |
| 140 | + 'A ' + rx + ',' + ry + ',0,0,1,' + (x + rx) + ',' + y; |
| 141 | + } |
| 142 | + else { |
| 143 | + newElement.d = 'M' + x + ' ' + y + ' ' + |
| 144 | + 'L' + (x + width) + ' ' + y + ' ' + |
| 145 | + 'L' + (x + width) + ' ' + (y + height) + ' ' + |
| 146 | + 'L' + x + ' ' + (y + height) + ' Z'; |
| 147 | + } |
130 | 148 | return newElement; |
131 | 149 | }; |
132 | 150 |
|
|
0 commit comments