Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 平线代替波浪_Java_Jfreechart_Trigonometry - Fatal编程技术网

Java 平线代替波浪

Java 平线代替波浪,java,jfreechart,trigonometry,Java,Jfreechart,Trigonometry,我想画一个正弦波,但我的应用程序生成一条平线。当我使用带有random fromjchartfree示例的系列时,一切都很好。我还使用调试器检查值是否正确。值不同于零 public void createDataset() { XYSeriesCollection dataset = new XYSeriesCollection(); XYSeries series1 = new XYSeries("Object 1"); double A = 1;

我想画一个正弦波,但我的应用程序生成一条平线。当我使用带有random from
jchartfree
示例的系列时,一切都很好。我还使用调试器检查值是否正确。值不同于零

public void createDataset() {
    XYSeriesCollection dataset = new XYSeriesCollection();
    XYSeries series1 = new XYSeries("Object 1");

    double A = 1;                       
    double T = 1;                       
    double Fs = 10;                   
    double f = 200;                     
    int rozmiar = (int) (T*Fs);

    double[] x = new double[rozmiar];

   for (int i = 0; i < rozmiar; i++)
   {
        x[i] = A * Math.sin(2 * Math.PI * f * i / Fs);
        series1.add(i, x[i]);
   }

    dataset.addSeries(series1);

    data = dataset;
}
//...
public void createChartPanel() {
    //pWykres = new JPanel();
    //if(java.util.Arrays.asList(getComponents()).contains(pWykres)){
        //getContentPane().remove(pWykres);
    //}
    if(pWykres != null){
        pWykres.removeAll();
        pWykres.revalidate();
    }

    String chartTitle = "Objects Movement Chart";
    String xAxisLabel = "X";
    String yAxisLabel = "Y";

    JFreeChart chart = ChartFactory.createXYLineChart(chartTitle,
            xAxisLabel, yAxisLabel, dataset);

    customizeChart(chart);

    pWykres = new ChartPanel(chart);
    getContentPane().add(pWykres, BorderLayout.CENTER);
    setSize(620, 460);
    //validate();
    pWykres.repaint();
}
//endregion
//...    
//region 
private void customizeChart(JFreeChart chart) {
    XYPlot plot = chart.getXYPlot();
    XYSplineRenderer renderer;
            renderer = new XYSplineRenderer();
            renderer.setSeriesShapesVisible(0, false);

    // sets paint color for each series
    renderer.setSeriesPaint(0, Color.RED);

    // sets thickness for series (using strokes)
    renderer.setSeriesStroke(0, new BasicStroke(1.0f));

    // sets paint color for plot outlines
    //plot.setOutlinePaint(Color.BLUE);
    //plot.setOutlineStroke(new BasicStroke(2.0f));

    // sets renderer for lines
    plot.setRenderer(renderer);

    // sets plot background
    plot.setBackgroundPaint(Color.WHITE);

    // sets paint color for the grid lines
    plot.setRangeGridlinesVisible(true);
    plot.setRangeGridlinePaint(Color.BLACK);

    plot.setDomainGridlinesVisible(true);
    plot.setDomainGridlinePaint(Color.BLACK);
}
public void createDataset(){
XYSeriesCollection数据集=新的XYSeriesCollection();
XYSeries系列1=新的XYSeries(“对象1”);
双A=1;
双T=1;
双Fs=10;
双f=200;
int rozmiar=(int)(T*Fs);
double[]x=新的double[rozmiar];
对于(int i=0;i
您使用的正弦值始终是
2*PI的整数倍,因此所有这些值都将(近似)为零,因此图形将最终显示为平面,除非缩放以显示这些微小值(仅为浮点错误)

其中
A
=1和
f/Fs
=20和
i
为整数

例如:

Math.sin(0)             // 0.0
Math.sin(2 * Math.PI)   // -2.4492935982947064E-16  (approximately zero)
Math.sin(4 * Math.PI)   // -4.898587196589413E-16   (approximately zero)

要查看正弦波的特征形状,您需要以更小的增量改变
sin
函数的输入,例如pi/10或更小。

您是对的。我没有注意到。我在处理旧C#代码中的公式时犯了错误。我刚刚从公式中删除了f,从现在起一切都很好。
Math.sin(0)             // 0.0
Math.sin(2 * Math.PI)   // -2.4492935982947064E-16  (approximately zero)
Math.sin(4 * Math.PI)   // -4.898587196589413E-16   (approximately zero)