Example #1
0
func (g *StarPattern) Star(p, hct *vec.Vec) {
	p1 := p.Translate(0.0, hct.Y)
	g.MoveTo(p.Pts())

	a1 := p1.Translate(-hct.X, hct.Y)
	a2 := a1.Translate(-hct.X, 0.0)
	g.CubicCurveTo(p1.X, p1.Y, a1.X, a1.Y, a2.X, a2.Y)

	b1 := a1.Translate(hct.X, hct.Y)
	b2 := b1.Translate(0.0, hct.Y)
	g.CubicCurveTo(a1.X, a1.Y, b1.X, b1.Y, b2.X, b2.Y)

	c1 := b1.Translate(hct.X, -hct.Y)
	c2 := c1.Translate(hct.X, 0.0)
	g.CubicCurveTo(b1.X, b1.Y, c1.X, c1.Y, c2.X, c2.Y)

	d1 := c1.Translate(-hct.X, -hct.Y)
	d2 := d1.Translate(0.0, -hct.Y)
	g.CubicCurveTo(c1.X, c1.Y, d1.X, d1.Y, d2.X, d2.Y)
}