我一生都无法解决这个看似简单的问题。
我正在尝试创建一个具有振幅上下限的正弦波(即最高点为3,最低点为0.4)
使用常规数学,我能够在从1到-1的数组中获得正弦波,但是我不知道如何更改这些界限。
static int MAX_POINTS = 100;
static int CYCLES = 1;
static double[] list = new double[100];
public static void SineCurve()
{
double phaseMultiplier = 2 * Math.PI * CYCLES / MAX_POINTS;
for (int i = 0; i < MAX_POINTS; i++)
{
double cycleX = i * phaseMultiplier;
double sineResult = Math.sin(cycleX);
list[i]= sineResult;
}
for(int i=0;i<list.length;i++){
System.out.println(list[i]);
}
}
任何提示将非常感谢。
最佳答案
幅度(sin(x)值的倍数)是所需的最高和最低值之差的一半。就你而言
amplitude = (3 - 0.4)/2
这是
1.3
。然后零偏移是最小值加上振幅,这使它成为1.7
。然后要绘制的方程式是
1.3 * sin(x) + 1.7
关于java - 如何创建振幅上下限的正弦波,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21640887/