func Draw(gc draw2d.GraphicContext, x, y, w, h float64) {
	h23 := (h * 2) / 3

	blf := color.RGBA{0, 0, 0, 0xff}          // black
	wf := color.RGBA{0xff, 0xff, 0xff, 0xff}  // white
	nf := color.RGBA{0x8B, 0x45, 0x13, 0xff}  // brown opaque
	brf := color.RGBA{0x8B, 0x45, 0x13, 0x99} // brown transparant
	brb := color.RGBA{0x8B, 0x45, 0x13, 0xBB} // brown transparant

	// round head top
	gc.MoveTo(x, y+h*1.002)
	gc.CubicCurveTo(x+w/4, y-h/3, x+3*w/4, y-h/3, x+w, y+h*1.002)
	gc.Close()
	gc.SetFillColor(brb)
	gc.Fill()

	// rectangle head bottom
	draw2dkit.RoundedRectangle(gc, x, y+h, x+w, y+h+h, h/5, h/5)
	gc.Fill()

	// left ear outside
	draw2dkit.Circle(gc, x, y+h, w/12)
	gc.SetFillColor(brf)
	gc.Fill()

	// left ear inside
	draw2dkit.Circle(gc, x, y+h, 0.5*w/12)
	gc.SetFillColor(nf)
	gc.Fill()

	// right ear outside
	draw2dkit.Circle(gc, x+w, y+h, w/12)
	gc.SetFillColor(brf)
	gc.Fill()

	// right ear inside
	draw2dkit.Circle(gc, x+w, y+h, 0.5*w/12)
	gc.SetFillColor(nf)
	gc.Fill()

	// left eye outside white
	draw2dkit.Circle(gc, x+w/3, y+h23, w/9)
	gc.SetFillColor(wf)
	gc.Fill()

	// left eye black
	draw2dkit.Circle(gc, x+w/3+w/24, y+h23, 0.5*w/9)
	gc.SetFillColor(blf)
	gc.Fill()

	// left eye inside white
	draw2dkit.Circle(gc, x+w/3+w/24+w/48, y+h23, 0.2*w/9)
	gc.SetFillColor(wf)
	gc.Fill()

	// right eye outside white
	draw2dkit.Circle(gc, x+w-w/3, y+h23, w/9)
	gc.Fill()

	// right eye black
	draw2dkit.Circle(gc, x+w-w/3+w/24, y+h23, 0.5*w/9)
	gc.SetFillColor(blf)
	gc.Fill()

	// right eye inside white
	draw2dkit.Circle(gc, x+w-(w/3)+w/24+w/48, y+h23, 0.2*w/9)
	gc.SetFillColor(wf)
	gc.Fill()

	// left tooth
	gc.SetFillColor(wf)
	draw2dkit.RoundedRectangle(gc, x+w/2-w/8, y+h+h/2.5, x+w/2-w/8+w/8, y+h+h/2.5+w/6, w/10, w/10)
	gc.Fill()

	// right tooth
	draw2dkit.RoundedRectangle(gc, x+w/2, y+h+h/2.5, x+w/2+w/8, y+h+h/2.5+w/6, w/10, w/10)
	gc.Fill()

	// snout
	draw2dkit.Ellipse(gc, x+(w/2), y+h+h/2.5, w/6, w/12)
	gc.SetFillColor(nf)
	gc.Fill()

	// nose
	draw2dkit.Ellipse(gc, x+(w/2), y+h+h/7, w/10, w/12)
	gc.SetFillColor(blf)
	gc.Fill()
}
func Draw(gc draw2d.GraphicContext, x, y, w, h float64) {
	h23 := (h * 2) / 3

	blf := color.RGBA{0, 0, 0, 0xff}          
	wf := color.RGBA{0xff, 0xff, 0xff, 0xff}  
	nf := color.RGBA{0x8B, 0x45, 0x13, 0xff}  
	brf := color.RGBA{0x8B, 0x45, 0x13, 0x99} 
	brb := color.RGBA{0x8B, 0x45, 0x13, 0xBB} 

	
	gc.MoveTo(x, y+h*1.002)
	gc.CubicCurveTo(x+w/4, y-h/3, x+3*w/4, y-h/3, x+w, y+h*1.002)
	gc.Close()
	gc.SetFillColor(brb)
	gc.Fill()

	
	draw2dkit.RoundedRectangle(gc, x, y+h, x+w, y+h+h, h/5, h/5)
	gc.Fill()

	
	draw2dkit.Circle(gc, x, y+h, w/12)
	gc.SetFillColor(brf)
	gc.Fill()

	
	draw2dkit.Circle(gc, x, y+h, 0.5*w/12)
	gc.SetFillColor(nf)
	gc.Fill()

	
	draw2dkit.Circle(gc, x+w, y+h, w/12)
	gc.SetFillColor(brf)
	gc.Fill()

	
	draw2dkit.Circle(gc, x+w, y+h, 0.5*w/12)
	gc.SetFillColor(nf)
	gc.Fill()

	
	draw2dkit.Circle(gc, x+w/3, y+h23, w/9)
	gc.SetFillColor(wf)
	gc.Fill()

	
	draw2dkit.Circle(gc, x+w/3+w/24, y+h23, 0.5*w/9)
	gc.SetFillColor(blf)
	gc.Fill()

	
	draw2dkit.Circle(gc, x+w/3+w/24+w/48, y+h23, 0.2*w/9)
	gc.SetFillColor(wf)
	gc.Fill()

	
	draw2dkit.Circle(gc, x+w-w/3, y+h23, w/9)
	gc.Fill()

	
	draw2dkit.Circle(gc, x+w-w/3+w/24, y+h23, 0.5*w/9)
	gc.SetFillColor(blf)
	gc.Fill()

	
	draw2dkit.Circle(gc, x+w-(w/3)+w/24+w/48, y+h23, 0.2*w/9)
	gc.SetFillColor(wf)
	gc.Fill()

	
	gc.SetFillColor(wf)
	draw2dkit.RoundedRectangle(gc, x+w/2-w/8, y+h+h/2.5, x+w/2-w/8+w/8, y+h+h/2.5+w/6, w/10, w/10)
	gc.Fill()

	
	draw2dkit.RoundedRectangle(gc, x+w/2, y+h+h/2.5, x+w/2+w/8, y+h+h/2.5+w/6, w/10, w/10)
	gc.Fill()

	
	draw2dkit.Ellipse(gc, x+(w/2), y+h+h/2.5, w/6, w/12)
	gc.SetFillColor(nf)
	gc.Fill()

	
	draw2dkit.Ellipse(gc, x+(w/2), y+h+h/7, w/10, w/12)
	gc.SetFillColor(blf)
	gc.Fill()
}
func Draw ( gc draw2d . GraphicContext , x , y , w , h float64 ) { h23 := ( h * 2 ) / 3 blf := color . RGBA { 0 , 0 , 0 , 0xff } // black wf := color . RGBA { 0xff , 0xff , 0xff , 0xff } // white nf := color . RGBA { 0x8B , 0x45 , 0x13 , 0xff } // brown opaque brf := color . RGBA { 0x8B , 0x45 , 0x13 , 0x99 } // brown transparant brb := color . RGBA { 0x8B , 0x45 , 0x13 , 0xBB } // brown transparant // round head top gc . MoveTo ( x , y + h * 1.002 ) gc . CubicCurveTo ( x + w / 4 , y - h / 3 , x + 3 * w / 4 , y - h / 3 , x + w , y + h * 1.002 ) gc . Close ( ) gc . SetFillColor ( brb ) gc . Fill ( ) // rectangle head bottom draw2dkit . RoundedRectangle ( gc , x , y + h , x + w , y + h + h , h / 5 , h / 5 ) gc . Fill ( ) // left ear outside draw2dkit . Circle ( gc , x , y + h , w / 12 ) gc . SetFillColor ( brf ) gc . Fill ( ) // left ear inside draw2dkit . Circle ( gc , x , y + h , 0.5 * w / 12 ) gc . SetFillColor ( nf ) gc . Fill ( ) // right ear outside draw2dkit . Circle ( gc , x + w , y + h , w / 12 ) gc . SetFillColor ( brf ) gc . Fill ( ) // right ear inside draw2dkit . Circle ( gc , x + w , y + h , 0.5 * w / 12 ) gc . SetFillColor ( nf ) gc . Fill ( ) // left eye outside white draw2dkit . Circle ( gc , x + w / 3 , y + h23 , w / 9 ) gc . SetFillColor ( wf ) gc . Fill ( ) // left eye black draw2dkit . Circle ( gc , x + w / 3 + w / 24 , y + h23 , 0.5 * w / 9 ) gc . SetFillColor ( blf ) gc . Fill ( ) // left eye inside white draw2dkit . Circle ( gc , x + w / 3 + w / 24 + w / 48 , y + h23 , 0.2 * w / 9 ) gc . SetFillColor ( wf ) gc . Fill ( ) // right eye outside white draw2dkit . Circle ( gc , x + w - w / 3 , y + h23 , w / 9 ) gc . Fill ( ) // right eye black draw2dkit . Circle ( gc , x + w - w / 3 + w / 24 , y + h23 , 0.5 * w / 9 ) gc . SetFillColor ( blf ) gc . Fill ( ) // right eye inside white draw2dkit . Circle ( gc , x + w - ( w / 3 ) + w / 24 + w / 48 , y + h23 , 0.2 * w / 9 ) gc . SetFillColor ( wf ) gc . Fill ( ) // left tooth gc . SetFillColor ( wf ) draw2dkit . RoundedRectangle ( gc , x + w / 2 - w / 8 , y + h + h / 2.5 , x + w / 2 - w / 8 + w / 8 , y + h + h / 2.5 + w / 6 , w / 10 , w / 10 ) gc . Fill ( ) // right tooth draw2dkit . RoundedRectangle ( gc , x + w / 2 , y + h + h / 2.5 , x + w / 2 + w / 8 , y + h + h / 2.5 + w / 6 , w / 10 , w / 10 ) gc . Fill ( ) // snout draw2dkit . Ellipse ( gc , x + ( w / 2 ) , y + h + h / 2.5 , w / 6 , w / 12 ) gc . SetFillColor ( nf ) gc . Fill ( ) // nose draw2dkit . Ellipse ( gc , x + ( w / 2 ) , y + h + h / 7 , w / 10 , w / 12 ) gc . SetFillColor ( blf ) gc . Fill ( ) }
// Draw a gopher head (not rotated)
Draw a gopher head ( not rotated )