3D Point-Line Charts are provided by the PointLineRenderableSeries3D type.
The PointLineRenderableSeries3D supports multiple pointmarkers, including:
3D Marker Types
SpherePointMarker3D - a 3D Sphere at each point
CubePointMarker3D - 3D Cube at each point
PyramidPointMarker3D - a 3D Pyramid at each point
CylinderPointMarker3D - a 3D Cylinder at each point
Fast 2D Marker types
PixelPointMarker3D - a single pixel at each point
QuadPointMarker3D - a Quad (flat square) facing the camera at each point
EllipsePointMarker3D - a flat ellipse facing the camera at each point
TrianglePointMarker3D - a flat triangle facing the camera at each point
CustomPointMarker3D - custom flat textured markers facing the camera at each point
Declaring a 3D Point Line Series
To declare a 3D Point Line Series with individual sizes & colors, use the following code.
PointLine 3D Chart |
Copy Code |
---|---|
final DataManager dataManager = DataManager.getInstance(); final Camera3D camera = sciChart3DBuilder.newCamera3D().build(); final NumericAxis3D xAxis = sciChart3DBuilder.newNumericAxis3D().withGrowBy(.1, .1).build(); final NumericAxis3D yAxis = sciChart3DBuilder.newNumericAxis3D().withGrowBy(.1, .1).build(); final NumericAxis3D zAxis = sciChart3DBuilder.newNumericAxis3D().withGrowBy(.1, .1).build(); final XyzDataSeries3D<Double, Double, Double> xyzDataSeries3D = new XyzDataSeries3D<>(Double.class, Double.class, Double.class); final PointMetadataProvider3D metadataProvider = new PointMetadataProvider3D(); final ObservableCollection<PointMetadataProvider3D.PointMetadata3D> medatata = metadataProvider.metadata; for (int i = 0; i < 100; i++) { final double x = 5 * Math.sin(i); final double y = i; final double z = 5 * Math.cos(i); xyzDataSeries3D.append(x, y, z); final int color = dataManager.getRandomColor(); final float scale = dataManager.getRandomScale(); medatata.add(new PointMetadataProvider3D.PointMetadata3D(color, scale)); } final SpherePointMarker3D pointMarker = sciChart3DBuilder.newSpherePointMarker3D() .withFill(ColorUtil.Red) .withSize(5f) .build(); final PointLineRenderableSeries3D rs = sciChart3DBuilder.newPointLinesSeries3D() .withDataSeries(xyzDataSeries3D) .withPointMarker(pointMarker) .withStroke(ColorUtil.Green) .withStrokeThicknes(2f) .withIsAntialiased(false) .withIsLineStrips(true) .withMetadataProvider(metadataProvider) .build(); UpdateSuspender.using(surface3d, new Runnable() { @Override public void run() { surface3d.setCamera(camera); surface3d.setXAxis(xAxis); surface3d.setYAxis(yAxis); surface3d.setZAxis(zAxis); surface3d.getRenderableSeries().add(rs); } }); |
Property IsLineStrips
The Point Line 3D Series also allows you to split the line at every other point. useful if you want to use it to draw a free-form grid. To enable this behaviour, set the IsLineStrips property. This property is used in the 3D Charts > Series Tooltips 3D Chart example.