很多人都说编程是枯燥的,但是我们可以做一些有趣的事情使它变得有趣。下面就让我们来用 Go 画一个正弦函数的图像。
首先先利用 image 包的 NewGray()函数创建一个图片对象。
func main() {
const size = 300
pic := image.NewGray(image.Rect(0,0,size,size))
for x := 0; x<size; x++{
for y := 0;y < size; y++{
pic.SetGray(x,y,color.Gray{255})
}
}
image.Rect() 描述方形的两个定点(x1,y1),(x2,y2)。image.Rect(0,0,size,size) 表示的是一个长 300,宽 300的灰度图片。用一个两层 for 循环,遍历图片中的所有像素,并填充为白色。
for x := 0; x < size; x++{
s := float64(x) * 2 * math.Pi /size
y := size/2 -math.Sin(s)*size/2
pic.SetGray(x,int(y),color.Gray{0})
}
现在图片创建好了,我们可以开始画图了。函数都有定义域,所以画图的时候我们也要设定好,我们假定图像是从 0 到 2π,于是就可以声明一个变量 s ,因为 x 是属于 0 到 size 的,所以 x 除以 size 就属于 0 到 1 ,再乘以2*π,范围就是 0 到 2π 了。
file, err := os.Create("sin.png")
if err != nil{
log.Fatal(err)
}
png.Encode(file,pic)
file.Close()
最后输出文件