私の現在のプロジェクトでは、3D点のxyz座標を格納するPVectorsのArrayListがあります。 ArrayListを操作する別のクラスにArrayListを渡していますが、そのときにNullPointerExceptionが発生します。私はPVectorsの1つがnullであると仮定していますが、nullのオブジェクトを(0,0,0)に代入することでこれをチェックしましたが、まだエラーが発生しています。また、PVectorsの配列やPVectorsのArrayListを持つ方が効果的ですか?どちらの方法でも、私はまだエラーが発生しています。ここにそれを作り出す線があります。ArrayListを別のクラスに渡そうとするとNullPointerExceptionが発生する
trip.pass(pointCoordinates);
そして、ここでの主なクラス
import org.openkinect.*;
import org.openkinect.processing.*;
Kinect kinect;
Trip trip;
boolean tripOn;
int w = 640;
int h = 480;
int distance = 5;
float[] depthLookUp = new float[2048];
ArrayList pointCoordinates = new ArrayList();
float factor = 400;
float a = 0;
float angle = 0;
float frequency = .05;
void setup() {
size(800,600,P3D);
kinect = new Kinect(this);
kinect.start();
kinect.enableDepth(true);
kinect.processDepthImage(false);
stroke(255);
for (int i = 0; i < depthLookUp.length; i++) {
depthLookUp[i] = rawDepthToMeters(i);
}
for(int i = 0; i < 31920; i++) {
pointCoordinates.add(new PVector(0, 0, 0));
}
}
void draw() {
background(0);
pushMatrix();
translate(width/2 + width/3,height/2, -200);
//add 1/3 width to account for rule of thirds
popMatrix();
int[] depth = kinect.getRawDepth();
calculate(depth);
if(!tripOn) {
for(int i = 0; i < pointCoordinates.size(); i++) {
PVector temp = (PVector) pointCoordinates.get(i);
point(temp.x, temp.y, temp.z);
}
}
if(frameCount % 10 == 0) {
if(tripOn) {
tripOn = false;
trip.clear();
}
else {
tripOn = true;
trip.pass(pointCoordinates);
}
}
if(tripOn) trip.run();
}
void stop() {
kinect.quit();
super.stop();
}
であることが、問題を明確にすることができます場合、私はそれ以上のクラスを貼り付けることができます。ありがとう!
あなたは19秒本当に;-) – skaffman