0

我至少有 12 个职位。最小值和最大值是 0 和 1。因此,如果我想在我的 12 个位置绘制一个正弦波(即每个位置一个值),我将有一个像这样的值列表:0.5、0.66、0.83、1、0.83、 0.66、0.5、0.33。0.16, 0, 0.16, 0.33, 0.5

但是,如果我想将泊松的数量扩展到 24、48 或 96 等,我将如何计算出这些值(即某种算法而不是手动计算)?

请注意,我的正弦波不是重复的正弦波,只是上面列表构建的单个图形。

4

1 回答 1

1

正弦波方程是 y = sin x(对于“单位”正弦波)。

您需要做的是将 x 轴划分为要显示的位置数,然后显示这些 x 值。

由于您的 x 最大值为 1,请使用: 注意:由于正弦波不会在 x 轴上以 1 结束,我假设您希望它绑定到这些值,因此 x 轴将被缩放所以 1.0 = 2*Pi

double xStep = 1.0/NumberOfPositions;

然后做:

for(double x = 0.0; x < 1.0; x += xStep)
{
    double yValue = Math.Sin(x*2*Math.PI); // Since you want 2*PI to be at 1
}

或者:

double xStep = 1.0/NumberOfPositions;
double[] yValues = new double[NumberOfPositions+1];
double[] xValues = new double[NumberOfPositions+1];
for (int i = 0; i < NumberOfPositions+1; i++)
{
    xValues[i] = i * xStep;
    yValues[i] = Math.Sin(xValues[i]*2*Math.PI); // Since you want 2*PI to be @ 1
}
于 2012-06-18T18:56:00.100 回答