如何生成 sin 值来创建图像?
Posted
技术标签:
【中文标题】如何生成 sin 值来创建图像?【英文标题】:How to generate sin values to create an Image? 【发布时间】:2014-02-10 05:59:27 【问题描述】:我正在为我的计算机科学课程的 sin 函数创建一个图像文件。
但是我根本不知道什么是sin函数!!
编写一个简单的 Java 程序来创建 sin 函数的图像。
文件格式:pgm(P2/灰色)
文件名:out.pgm
sin函数:
宽度/域/x:[0..2Pi]
y:实数 [-1.0..+1.0]
图片:
宽度:500 像素 (0,..,499)
高度:250 像素(从 sin 重复值 250 次)
像素值:整数 0,…,255
我几乎完成了 ASCII 图像创建和文件格式验证。
我剩下的唯一问题是如何生成 sin 值?
我找到了 Math.sin() 和 Math.PI,然后呢?
什么是 x?
y 是什么?
这里的域名是什么?
【问题讨论】:
x
是以弧度表示的角度,从零到 2*Pi,y
是 sin(x)
。这有帮助吗?
@RogerRowland 好的,但为什么是 y: real numbers [-1.0..+1.0] 那是什么受助者?
这是sin
函数的输出 - 它 始终在这些限制范围内。也许只是把它放在一个电子表格中,看看你得到了什么,然后你就会更好地了解情节应该是什么样子。
@RogerRowland 我无法在 0 和 255 之间生成 goo.gl/i5Prkc
好吧,我舍不得给你做,你得想办法搞清楚步骤。你正在生成一个 500x250 像素的图像,你想要一个正弦曲线。因此,也许您从黑色图像开始,然后将 x 轴缩放到 0..2Pi,将 y 轴缩放到 -1..+1,并且对于每个 x 位置,您在 y 位置对应于正弦函数的输出。或许你可以实现something,展示一些代码,然后提出一个具体的问题。
【参考方案1】:
理论上,sinus 函数将每个(实际)值映射到 -1 和 1 之间的值。由于您无法使用计算机生成每个实际值,并且 sin 函数恰好是单调的,因此每 2 次重复一次* Pi,绘制 0 到 2*Pi 之间的值,每一步都有小幅增加。
这意味着:
x 是一个类似 [0,0.001,0.002,...2*Pi] 的数组
y 是 sin(x)
祝你作业顺利。
【讨论】:
域名是什么? width/domain/x: [0..2Pi] 如何映射0...2内的宽度? x 是您的域,它是 0 到 2Pi 之间的“所有”数字。因为你不能表达所有的实数,所以你使用一个数组,它的元素每一步都有一点变化。 很抱歉,但我仍然卡住了。我使用 excel 生成,但似乎没有介于 0 和 255 之间!我在 SkyDrive 中的文件:goo.gl/i5Prkc 这是一门计算机视觉课程,您对此充满热情 :) 但是我将如何从 0 ... 2pi 生成 0 到 255 的像素?以上是关于如何生成 sin 值来创建图像?的主要内容,如果未能解决你的问题,请参考以下文章