本文整理汇总了Golang中github.com/shibukawa/nanovgo.Context.Ellipse方法的典型用法代码示例。如果您正苦于以下问题:Golang Context.Ellipse方法的具体用法?Golang Context.Ellipse怎么用?Golang Context.Ellipse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/shibukawa/nanovgo.Context
的用法示例。
在下文中一共展示了Context.Ellipse方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: drawEyes
func drawEyes(ctx *nanovgo.Context, x, y, w, h, mx, my, t float32) {
ex := w * 0.23
ey := h * 0.5
lx := x + ex
ly := y + ey
rx := x + w - ex
ry := y + ey
var dx, dy, d, br float32
if ex < ey {
br = ex * 0.5
} else {
br = ey * 0.5
}
blink := float32(1.0 - math.Pow(float64(sinF(t*0.5)), 200)*0.8)
bg1 := nanovgo.LinearGradient(x, y+h*0.5, x+w*0.1, y+h, nanovgo.RGBA(0, 0, 0, 32), nanovgo.RGBA(0, 0, 0, 16))
ctx.BeginPath()
ctx.Ellipse(lx+3.0, ly+16.0, ex, ey)
ctx.Ellipse(rx+3.0, ry+16.0, ex, ey)
ctx.SetFillPaint(bg1)
ctx.Fill()
bg2 := nanovgo.LinearGradient(x, y+h*0.25, x+w*0.1, y+h, nanovgo.RGBA(220, 220, 220, 255), nanovgo.RGBA(128, 128, 128, 255))
ctx.BeginPath()
ctx.Ellipse(lx, ly, ex, ey)
ctx.Ellipse(rx, ry, ex, ey)
ctx.SetFillPaint(bg2)
ctx.Fill()
dx = (mx - rx) / (ex * 10)
dy = (my - ry) / (ey * 10)
d = sqrtF(dx*dx + dy*dy)
if d > 1.0 {
dx /= d
dy /= d
}
dx *= ex * 0.4
dy *= ey * 0.5
ctx.BeginPath()
ctx.Ellipse(lx+dx, ly+dy+ey*0.25*(1.0-blink), br, br*blink)
ctx.SetFillColor(nanovgo.RGBA(32, 32, 32, 255))
ctx.Fill()
dx = (mx - rx) / (ex * 10)
dy = (my - ry) / (ey * 10)
d = sqrtF(dx*dx + dy*dy)
if d > 1.0 {
dx /= d
dy /= d
}
dx *= ex * 0.4
dy *= ey * 0.5
ctx.BeginPath()
ctx.Ellipse(rx+dx, ry+dy+ey*0.25*(1.0-blink), br, br*blink)
ctx.SetFillColor(nanovgo.RGBA(32, 32, 32, 255))
ctx.Fill()
dx = (mx - rx) / (ex * 10)
dy = (my - ry) / (ey * 10)
d = sqrtF(dx*dx + dy*dy)
if d > 1.0 {
dx /= d
dy /= d
}
dx *= ex * 0.4
dy *= ey * 0.5
ctx.BeginPath()
ctx.Ellipse(rx+dx, ry+dy+ey*0.25*(1.0-blink), br, br*blink)
ctx.SetFillColor(nanovgo.RGBA(32, 32, 32, 255))
ctx.Fill()
gloss1 := nanovgo.RadialGradient(lx-ex*0.25, ly-ey*0.5, ex*0.1, ex*0.75, nanovgo.RGBA(255, 255, 255, 128), nanovgo.RGBA(255, 255, 255, 0))
ctx.BeginPath()
ctx.Ellipse(lx, ly, ex, ey)
ctx.SetFillPaint(gloss1)
ctx.Fill()
gloss2 := nanovgo.RadialGradient(rx-ex*0.25, ry-ey*0.5, ex*0.1, ex*0.75, nanovgo.RGBA(255, 255, 255, 128), nanovgo.RGBA(255, 255, 255, 0))
ctx.BeginPath()
ctx.Ellipse(rx, ry, ex, ey)
ctx.SetFillPaint(gloss2)
ctx.Fill()
}