[vtkusers] vtkChartXYZ Java example
    James Labiak 
    jim at jslengineeringsoftware.com
       
    Mon Dec  8 10:46:33 EST 2014
    
    
  
Hello,
I am a new user of vtk and relatively new to Java. I am trying to use 
vtkChartXYZ in Java, but having a lot of problems. I adapted the 
TestSurfacePlot.cxx from Charts\Core\Testing\Cxx to Java, but it just 
shows a 2D surface which appears to be a plane. Does anyone have any 
Java examples of vtkChartXYZ? I included the converted Java code below.
Thanks,
Jim
import java.io.File;
// We import the vtk wrapped classes first.
import vtk.*;
// Then we define our class.
public class CP_plot_test {
   // In the static contructor we load in the native code.
   // The libraries must be in your path to work.
     static
     {
         if (!vtkNativeLibrary.LoadAllNativeLibraries()) {
            for (vtkNativeLibrary lib : vtkNativeLibrary.values()) {
                     if (!lib.IsLoaded())
                 System.out.println(lib.GetLibraryName() + " not loaded");
            }
         System.out.println("Make sure the search path is correct: ");
         System.out.println(System.getProperty("java.library.path"));
         }
         vtkNativeLibrary.DisableOutputWindow(null);
     }
   // now the main program
   public static void main (String []args) {
       vtkChartXYZ chart = new vtkChartXYZ();
       vtkPlotSurface plot = new vtkPlotSurface();
       vtkContextView view = new vtkContextView();
       view.GetRenderWindow().SetSize(400, 300);
       view.GetScene().AddItem(chart); //.GetPointer();
       //create a surface
       vtkTable table = new vtkTable();
       int numPoints = 70;
       float inc = 9.424778F / (numPoints - 1);
       for (float x = 0; x < numPoints; ++x)
       {
         vtkDoubleArray arr = new vtkDoubleArray();
         for (float y = 0; y < numPoints; ++y)
                 {
                     double z = Math.sin(Math.sqrt(x * x + y * y));
                     arr.InsertNextValue(z);
                     System.out.println("x = " + x + " y = " + y + " z 
=" + z);
                 }
         table.AddColumn(arr);
       }
       //set up the surface plot to be visualized and add it to the chart
       System.out.println("Table has " + table.GetNumberOfColumns() + " 
columns");
       System.out.println("Table has " + table.GetNumberOfRows() + " rows");
       plot.SetYRange(0, 9.424778);
       plot.SetXRange(0, 9.424778);
       plot.SetInputData(table);
       chart.AddPlot(plot);
       view.GetRenderWindow().SetMultiSamples(0);
       view.GetInteractor().Initialize();
       view.GetRenderWindow().Render();
       view.GetInteractor().Start();
  }
}
    
    
More information about the vtkusers
mailing list