SciChart WPF 3D Charts > 3D Chart Types > The Free Surface 3D Chart Types > The Polar 3D Chart Type
The Polar 3D Chart Type

Examples for the 3D Polar Mesh Chart can be found in the SciChart WPF Examples Suite which can be downloaded from the SciChart Website or our SciChart.WPF.Examples Github Repository.

NEW to SciChart WPF 3D v5.2!

Polar 3D Charts are provided by the PolarDataSeries3D type.

 

 

 

 

The location of the PolarDataSeries3D is defined by following properties:

  • PolarDataSeries3D.OffsetX – a location of the Polar Chart by the X-Axis
  • PolarDataSeries3D.OffsetY – a location of the Polar Chart by the Y-Axis
  • PolarDataSeries3D.OffsetZ – a location of the Polar Chart by the Z-Axis

 

The size of the PolarDataSeries3D is defined by following properties:

  • PolarDataSeries3D.A – a distance from the origin to the internal edge of the polar 3D Surface
  • PolarDataSeries3D.B – a distance from the origin to the external edge of the polar 3D Surface

Declaring a Polar 3D Series with random values in the offset map

<s3D:SciChart3DSurface x:Name="sciChart" Grid.Column="1" WorldDimensions="200,50,200" BorderThickness="0">
      <s3D:SciChart3DSurface.Camera>
        <s3D:Camera3D ZoomToFitOnAttach="True"/>
      </s3D:SciChart3DSurface.Camera>
      <s3D:SciChart3DSurface.RenderableSeries>
        <s3D:FreeSurfaceRenderableSeries3D x:Name="polarMeshRenderableSeries"
                                             DrawMeshAs="SolidWireFrame"
                                             Stroke="#77228B22"
                                             ContourStroke="#77228B22"
                                             StrokeThickness="2.0"
                                             Opacity="{Binding ElementName=opacitySlider, Path=Value, Mode=TwoWay}"
                                             MeshColorPalette="{StaticResource HeightColorMap}"
                                             LightingFactor="{Binding ElementName=lightingFactorSlider, Path=Value, Mode=TwoWay}"
                                             PaletteMinMaxMode="Absolute"
                                             PaletteMinimum="0.0, 0.0, 0.0" PaletteMaximum="0.0, 1.0, 0.0" />
      </s3D:SciChart3DSurface.RenderableSeries>
      <s3D:SciChart3DSurface.XAxis>
        <s3D:NumericAxis3D />
      </s3D:SciChart3DSurface.XAxis>
      <s3D:SciChart3DSurface.YAxis>
        <s3D:NumericAxis3D VisibleRange="0.0, 3.0" AutoRange="Never" />
      </s3D:SciChart3DSurface.YAxis>
      <s3D:SciChart3DSurface.ZAxis>
        <s3D:NumericAxis3D />
      </s3D:SciChart3DSurface.ZAxis>
</s3D:SciChart3DSurface>
int countU = 30;
int countV = 10;
var meshDataSeries = new PolarDataSeries3D<double>(countU, countV, 0D, Math.PI * 1.75)
{
    SeriesName = "Polar 3D Mesh",
    A = 1,
    B = 5
};
var random = new Random(0);
for (var u = 0; u < countU; u++)
{
    var weightU = 1.0f - Math.Abs(u / (float)countU * 2.0f - 1.0f);
    for (int v = 0; v < countV; v++)
    {
        var weightV = 1.0f - Math.Abs(v / (float)countV * 2.0f - 1.0f);
        var offset = (float)random.NextDouble();
        meshDataSeries[v, u] = offset * weightU * weightV;
    }
}
polarMeshRenderableSeries.DataSeries = meshDataSeries;