2017-04-08 8 views
0

Jzy3dを使用して配列に格納されたデータポイント(x、y、z)のセットを表示するプロッタクラスを作成しようとしています。クラスには、データセットを取り込み(自動的に)3D座標系で表示するメソッドplot()が含まれている必要があります。
このメソッドは、時間依存のループで順次呼び出されることになっています。Jzy3d(Java)の簡易散布図

これまでのところ、私はscatter plot demo for Jzy3dの作業を行っていますが、コードの各ビットが何をしているのか分かりません。 Jzy3dのドキュメントはそれほど多くの情報を提供していないので、実際にチュートリアルをオンラインで見つけることはできません。

誰もがデモを説明したり、同様の方法を含む簡単なプロッタを書くことができれば、非常に感謝しています。

Jzy3dに対する効率的な作業プロットの代替案もありがたいです。

デモコード:

import java.util.Random; 

import org.jzy3d.analysis.AbstractAnalysis; 
import org.jzy3d.analysis.AnalysisLauncher; 
import org.jzy3d.chart.factories.AWTChartComponentFactory; 
import org.jzy3d.colors.Color; 
import org.jzy3d.maths.Coord3d; 
import org.jzy3d.plot3d.primitives.Scatter; 
import org.jzy3d.plot3d.rendering.canvas.Quality; 


public class ScatterDemo extends AbstractAnalysis{ 
    public static void main(String[] args) throws Exception { 
     AnalysisLauncher.open(new ScatterDemo()); 
    } 

    @Override 
    public void init(){ 
     int size = 500000; 
     float x; 
     float y; 
     float z; 
     float a; 

     Coord3d[] points = new Coord3d[size]; 
     Color[] colors = new Color[size]; 

     Random r = new Random(); 
     r.setSeed(0); 

     for(int i=0; i<size; i++){ 
      x = r.nextFloat() - 0.5f; 
      y = r.nextFloat() - 0.5f; 
      z = r.nextFloat() - 0.5f; 
      points[i] = new Coord3d(x, y, z); 
      a = 0.25f; 
      colors[i] = new Color(x, y, z, a); 
     } 

     Scatter scatter = new Scatter(points, colors); 
     chart = AWTChartComponentFactory.chart(Quality.Advanced, "newt"); 
     chart.getScene().add(scatter); 
    } 
} 

答えて

0

このメソッドが作成する必要があり、新たな散布

public void plot(Coord3d[] points, Color[] colors) { 
    Scatter scatter = new Scatter(points, colors); 
    chart = AWTChartComponentFactory.chart(Quality.Advanced, "newt"); 
    chart.getScene().add(scatter); 
} 

このコードは、単に座標と色

int size = 100 
Coord3d[] points = new Coord3d[size]; 
Color[] colors = new Color[size]; 
for(int i=0; i < size; i++){ 
     x = i; 
     y = i; 
     z = i; 
     points[i] = new Coord3d(x, y, z); 

     r = 0.5; 
     b = 0.5; 
     g = 0.5; 
     colors[i] = new Color(r, g, b); 
    } 
のあなたの値を使用し、データセットを作成する方法を示しています