random circles example
This commit is contained in:
24
circle.go
Normal file
24
circle.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package imageutils
|
||||
|
||||
import (
|
||||
"image"
|
||||
"image/color"
|
||||
)
|
||||
|
||||
// go.dev/blog/image-draw#drawing-through-a-mask
|
||||
type Circle struct {
|
||||
image.Point
|
||||
R int
|
||||
}
|
||||
|
||||
func (c Circle) ColorModel() color.Model { return color.AlphaModel }
|
||||
func (c Circle) Bounds() image.Rectangle {
|
||||
return image.Rect(c.Point.X-c.R, c.Point.Y-c.R, c.Point.X+c.R, c.Point.Y+c.R)
|
||||
}
|
||||
func (c Circle) At(x, y int) color.Color {
|
||||
xx, yy, rr := float64(x-c.Point.X)+0.5, float64(y-c.Point.Y)+0.5, float64(c.R)
|
||||
if xx*xx+yy*yy < rr*rr {
|
||||
return color.Opaque
|
||||
}
|
||||
return color.Transparent
|
||||
}
|
||||
Reference in New Issue
Block a user