43 lines
		
	
	
		
			717 B
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			717 B
		
	
	
	
		
			JavaScript
		
	
	
	
| var Path = require("../Path");
 | |
| 
 | |
| /**
 | |
|  * 正多边形
 | |
|  * @module zrender/shape/Isogon
 | |
|  */
 | |
| var PI = Math.PI;
 | |
| var sin = Math.sin;
 | |
| var cos = Math.cos;
 | |
| 
 | |
| var _default = Path.extend({
 | |
|   type: 'isogon',
 | |
|   shape: {
 | |
|     x: 0,
 | |
|     y: 0,
 | |
|     r: 0,
 | |
|     n: 0
 | |
|   },
 | |
|   buildPath: function (ctx, shape) {
 | |
|     var n = shape.n;
 | |
| 
 | |
|     if (!n || n < 2) {
 | |
|       return;
 | |
|     }
 | |
| 
 | |
|     var x = shape.x;
 | |
|     var y = shape.y;
 | |
|     var r = shape.r;
 | |
|     var dStep = 2 * PI / n;
 | |
|     var deg = -PI / 2;
 | |
|     ctx.moveTo(x + r * cos(deg), y + r * sin(deg));
 | |
| 
 | |
|     for (var i = 0, end = n - 1; i < end; i++) {
 | |
|       deg += dStep;
 | |
|       ctx.lineTo(x + r * cos(deg), y + r * sin(deg));
 | |
|     }
 | |
| 
 | |
|     ctx.closePath();
 | |
|     return;
 | |
|   }
 | |
| });
 | |
| 
 | |
| module.exports = _default; |