2016-04-08 8 views
3

Ich habe versucht, AntiAliasing in einem Liniendiagramm (Real Time FIFO) auf wahr zu setzen, aber es scheint nicht zu funktionieren. Gibt es noch etwas, was ich tun muss? HierSciChart FastLineRenderableSeries Anti-Aliasing funktioniert nicht

ist die XAML ...

<s:SciChartSurface x:Name="sciChart" Grid.Column="1" GridLinesPanelStyle="{StaticResource GridLinesPanelStyle}" RenderTransformOrigin="0.498,0.48" RenderableSeries="{Binding ChartSeries}"> 

Und der Code hinter ...

private void AddCurveToChart(XyDataSeries<double, double> curveSeries) 
    { 

     FastLineRenderableSeries renderableCurve = new FastLineRenderableSeries 
     { 
      DataSeries = curveSeries, 
      Stroke = (Color)ColorConverter.ConvertFromString(Strokes[ChartSeries.Count < Strokes.Length ? ChartSeries.Count : Strokes.Length - 1]), 
      StrokeThickness = 2, 
      AntiAliasing = true, 

     }; 

     ChartSeries.Add(renderableCurve); 

     RaisePropertiesChanged("ChartSeries"); 
    } 

Doch, wie Sie aus dem Screenshot sehen können, ich "die jaggies" nach wie vor erhalten. ..

enter image description here

Antwort

2

nach SciChart benötigen Sie eine der Hoch verwenden Quality-, DirectX- oder Vector Renderer-Plugins, um Anti-Alias-Linien zu erhalten. Sie verweisen Sie auf diese article für weitere Informationen zu den Plugins.

  • Die HighSpeedRenderSurface Eine Ganzzahl-Koordinate, schnell, Software-Renderer (CPU basiert). Produziert gezackte Linien, aber es ist sehr schnell.

  • Die HighQualityRenderSurface (verfügbar in der Pro und Source Edition) Ein Software-Renderer mit Fließkomma-Koordinaten (CPU-basiert).
    Erzeugt das Bild mit der besten Qualität, verwendet jedoch mehr CPU-Ressourcen als HighSpeed.

  • Die Direct3D10RenderSurface (verfügbar in der Source Edition) Ein Gleitkomma-DirectX10-Hardware-Renderer (GPU-basiert). Verwendet
    Pixel-Shader, um so viel Rechenleistung wie möglich auf die GPU zu übertragen.

HighSpeedRenderSurface wird standardmäßig verwendet, die gezackten Linien erzeugt.

Damit die HighQualityRenderSurface (nur in der Pro-Version):

<s:SciChartSurface> 
    <s:SciChartSurface.RenderSurface> 
     <s:HighQualityRenderSurface/> 
    </s:SciChartSurface.RenderSurface> 
</s:SciChartSurface> 

Die Direct3D10RenderSurface kann auf diese Weise (nur in "Source-Code einfach Edition") verwendet werden:

<s:SciChartSurface.RenderSurface> 
    <s3D:Direct3D10RenderSurface InitializationFailed="OnDirectXInitializationFailed" 
           RenderingFailed="OnDirectXRenderingFailed"/> 
</s:SciChartSurface.RenderSurface> 
+0

Spot on ! Obwohl der Artikel veraltet ist. Die Oberfläche "HighQualityRenderSurface" ist jetzt in allen Editionen verfügbar, und DirectX kann über die angefügte Eigenschaft "DirectXHelper.TryApplyDirectX" mit einem Fallback für Software aktiviert werden. Schließlich ist DirectX ab SCv4 in den Editionen Enterprise (ehemals Source) und SDK verfügbar. Vielen Dank! [scichart team] –

+0

'Das Mitglied" RenderSurface "wird nicht erkannt oder ist nicht zugänglich. - Ist das, weil ich die Testversion habe? – colmde

+0

Sollte nicht sein. Es gibt keinen Unterschied zwischen Probe und Voll, nur Zeitlimit –