0

ポイントの線形関数をカウントするために使用している関数があります。すべての値のリストを返したい。しかし、私はどこかにバグがあり、私のリストには1点しか保存されていませんでした. 何が間違っているのか、なぜ最後の表で 1 ポイントしか保存されていないのか教えていただけますか? これはコードです:

private List<PointF> forumlaOfFunctionCharts(Number[] points){
    List<PointF> listOfPoints = new ArrayList<PointF>();
    PointF xy = new PointF();
    float a = 0, b = 0, y = 0, y1 = 0, y2 = 0;
    for(int i = 0; i<points.length-1; i++){
        y1 = points[i].intValue();
        y2 = points[i+1].intValue();

        a = (y1-y2)/(i-(i+1));
        b = y1 - (a*i);

        Log.v("daneTabela", ""+a+", "+b);
        for(float j = i; j<=i+1; j=j+0.1f){
            y = a * j + b;
            xy.set(j, y);
            listOfPoints.add(xy);
            Log.v("daneTa", ""+xy.x+", "+xy.y);
        }
    }

    return listOfPoints;
}
4

1 に答える 1

2

for ループ内に移動 PointF xy = new PointF();して、ArrayList に新しいオブジェクトを次のように追加します。

 PointF xy ; 
 //..your code here...
 Log.v("daneTabela", ""+a+", "+b);
        for(float j = i; j<=i+1; j=j+0.1f){
            y = a * j + b;
             xy = new PointF();  //<<< create PointF object here
            xy.set(j, y);

            listOfPoints.add(xy);
            Log.v("daneTa", ""+xy.x+", "+xy.y);
        }
 //...your code here 
于 2013-03-07T12:06:43.417 に答える