编辑代码

classFiveStar :Shape [
/1五角星和正五边形较为类似
//中心坐标
var center : CGPoint?
//半径
var radius :CGFloat?
/1旋转的角度
var angel: CGFloat?
//构造器
init (name: String, origin: cGpoint, center: cGpoint, radius: CGFloat,angel:CGFloat)
super.init(name: name, origin:origin)
self.center = center
self.radius = radius
self.angel = angel
一
convenience init(center : CGPoint, radius : CGFloat,angel:CGFloat
=0)
let x = center.x - radius
let y = center.y - radius
self.init (name: "FiveStar", origin: CGPoint(x:x,y:y), center: center, radius: radius,angel:angel)
//自定义方法drawBezierPath用于画五角星
overridefunc drawBezierPath()(
//调用贝塞尔曲线函数UIBezierpath()
let path = UIBezierPath()
/1五角星旋转顶点
let i= 360/angel!
let xzAngle = CGFloat.pi*2/i
let xzX=(center?.x)!- sin(xzAngle)★radius!
let xzY=(center?.y)!- cos(xzAngle)*radius!
let pl = CGPoint(x: xzX, y: xzY)
path.move(to: p1)
let angle = CGFloat.pi*4/5
for i in 1...5
let x=(center?.x)!- sin(CGFloat(i)*angle+xzAngle)*radius! let y=(center?.y)!- cos(CGFloat(i)★angle+xzAngle)★radius!path.addLine(to: CGPoint(x: x, y: y))
path.close()
//线条宽度
path.lineWidth = lineWidth!
// 线条颜色为 red 红色
lineColor?.setStroke()
//画出这个圆
path.stroke()
}
}