描画する必要がある点の値を計算し、それらを Point3f 配列に入れました。526 435 ポイントあります。次のステップは、連続した線のように見えるようにポイントを次々に描画するか、LineStripArray を使用してポイント間に線を描画することです。ポイントごとに描画する方法が見つからなかったので、LineStripArray を使用しようとしました。
ここからコードを取得し、メソッド「createLineTypes」の内容を次のコードで変更しました。
Group lineGroup = new Group();
Appearance app = new Appearance();
ColoringAttributes ca = new ColoringAttributes(black, ColoringAttributes.SHADE_FLAT);
app.setColoringAttributes(ca);
Computing comp = new Computing();
//the following row computes the values of the points I want to draw
//and it works alright; the points are saved into
//**static List<Vector3> computed_values** from class Computing,
// where Vector3 class defines a 3D point actually
comp.do_the_job();
Point3f[] dashPts = new Point3f[Computing.computed_values.size()];
for(int i = 0; i < Computing.computed_values.size(); i++)
{
dashPts[i] = new Point3f((int)Computing.computed_values.get(i).getX(), (int)Computing.computed_values.get(i).getY(), (int)Computing.computed_values.get(i).getZ());
}
System.out.print(Computing.computed_values.size());
int[] a = {Computing.computed_values.size()};
LineStripArray dash = new LineStripArray(Computing.computed_values.size(), LineArray.COORDINATES, a);
dash.setCoordinates(0, dashPts);
LineAttributes dashLa = new LineAttributes();
dashLa.setLineWidth(1.0f);
dashLa.setLinePattern(LineAttributes.PATTERN_SOLID);
Shape3D dashShape = new Shape3D(dash, app);
lineGroup.addChild(dashShape);
return lineGroup;
問題は、垂直線が 1 本しか描画されないことです。何か案は?