package main
import (
"image"
"image/color"
"image/png"
"log"
"math"
"os"
)
func main() {
//图片大小
const size = 300 //声明size常量
//根据给定大小创建灰度图片对象
pic:=image.NewGray(image.Rect(0,0,size,size))//image.Rect(0,0,size,size) 表示使用完整灰度图像素,尺寸为宽300,长300。
//遍历每个像素
for x:=0;x<size ;x++ {
for y:=0;y<size ;y++ {
//填充背景颜色 Gray(Gray代表一个8-bit的灰度):0(黑色)~255(白色)
pic.SetGray(x,y,color.Gray{255})//白色
}
}
//从0到最大像素生成x坐标
for x:=0;x<size ;x++ {
//让sin的值的范围在0~2Pi
s:=float64(x)*2*math.Pi/size //Pi:3.1415926...
//sin的幅度为一半的像素,向下偏移一半像素并翻转
y:=size/2-math.Sin(s)*size/2
//用黑色绘制sin轨迹
pic.SetGray(x,int(y),color.Gray{0})
}
//创建文件
file,err:=os.Create("sin.png")
//处理异常
if err!=nil {
log.Fatal(err)
}
//使用png格式将数据写入文件
png.Encode(file,pic)
//关闭文件
file.Close()
}
Go语言输出正弦函数
最新推荐文章于 2023-08-19 17:21:59 发布