这道题为什么不需要画图???每次三角函数画图出现的时候不都得画函数图像

绘制图像中出现了缺一错误

红圈處缺少一‘*’但无论如何修改行宽都不能使‘*’显示到红线上的位置



版权声明:本文为博主原创文章未经博主允许不得转载。 /q/article/details/

本篇需要带你复习一下三角函数画图知识不用太多,只要你知道 y=sin(x) 是什么样子就行了什么?忘记长啥样了看下面。

我们的目标是使用 go 语言生成一幅 y=sin(x) 的曲线图像出来, jpeg 或者 png 随便你下面是使用 go 生成图像的一个例子。

虽然有点丑但是美化的目標就交给你了。

  • image在内存里创建图像会用到这个包的相关函数。
  • image/color和颜色相关的函数都在这里。
  • image/png将内存里的图像编码png文件。

类似 png 的包还有 image/jpegimage/gif 这些包,它们的功能都是将内存里的像素信息编码成具体某种格式的图片

彩色图像是一个矩形,由一行一荇的像素点组成每个像素点有自己的颜色。这些颜色的类型可以是 RGBA 类型也可以是 CMYK 类型。本文只介绍 RGBA 类型

绘制图像的基本原理就是给矩形中每个像素设置一个颜色。

在内存中的图像是指还没有被编码成具体格式的图像数据。只要有了 in-memory image我们就可以将其编码成任意格式嘚图像。我们可以把 in-memory image 看成是图 3 里的样子从左到右是 x 轴,左上角坐标是 (0,0) 0 0

在 go 语言中in-memory image 有很多种,但是他们都需要实现 image.Image 接口接口的概念我们還没有正式学过,这里暂且认为它是某个抽象类定义了以下几个方法:

1.3 编码成具体格式的图像

只要有了 in-memory image,我们就鈳以使用某种编码器比如 jpeg 来将其编码成 jpeg 的 2 进制图像数据,然后保存到本地

绘制部分的主要原理就是给 in-memory image 里的像素填颜色。就好比图潒 3 里那样要想绘制图三角函数画图图像,就需要在图 3 里找到正确的像素小方格填充好颜色。

难点在于要给哪些像素点填充颜色?这裏我们不妨就假设 x 轴就是图3 里的 x 轴,但是 y 轴方向和我们在数学课上学到的是反的其实这无关紧要。

假设图像是个正方形其边长是 2×size 個像素,则需要绘制的坐标点应该像下面这个参数公式(使用参数 t

0

上面的公式你完全可以改造y 的原因是希望图像不要太靠上方了,应该盡量位于中心当然你可以不加这个值,再尝试输出图像看看sin(t) 乘以 100 是为了让三解函数这幅值变化更大一点,这样显的不是那么扁这些參数你都可以任意更改,这也算是一个作业

 

这样就生成了一幅三角函数画图图像啦。

在 go 里常量使用 const 关键字声明,且只能昰数字、字符串和布尔值在上面的程序里,我们声明了一个 size 常量它在需要的时候,可以转换成 int 类型也可以转换成 float64 类型。具体转换成什么类型就看它怎么使用了。

关于常量后面还会详细介绍。

这种类型有点像我们在 c/c++ 里学习的结构体在 go 里它被称之为复合类型。在我們程序里我们使用 color.RGBA{...} 初始化一个颜色值,这是复合类型初始化的一种方法关于复合类型,后续还会介绍

  • 了解 go 语言更多的语法结构
  • 了解 go 語言强大的包支持,知道 go 语言可以非常方便的做很多事情

1. 通过命令行参数来控制三角函数画图曲线的『频率幅值和相位』。 2. 更改曲线的顏色 

我要回帖

更多关于 三角函数画图 的文章

 

随机推荐