LightningChart数据可视化图形控件使用篇35-3D模型空间中的·PointLineSeries3D

796 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

PointLineSeries

演示示例: Scatter points; Point lines; Points tracking; Point cloud; Parallel coordinates chart; Multi-colored 3D point-line

PointLineSeries3D 可以在3D空间中展示出点与线。对于点来说,有许多基本的3D形状可用。如果将LineVisible属性设置为true,那么点可以用一条线连接起来。

微信截图_20220513101416.png 图:一个PointLineSeries3D 示例, PointStyle的 Shape设置为Sphere.

点样式

点可以显示为真实的3D点,也可以显示为2D形状。

微信截图_20220513101505.png 图:PointStyle 属性树。ShapeType可用以在2D与3D形状之间进行切换。

微信截图_20220513101546.png Copyright Arction Ltd 2009-2021 187 图:对红色十字设置ShapeType = Shape2D. 青色与绿色设置ShapeType = Shape3D.

注意! 2D形状是在所有3D对象上渲染的,它们不支持基于其他对象可见性来隐藏。

线条样式

微信截图_20220513101855.png 图:LineStyle properties.

线条可渲染为3D线条,或者一根1像素宽的发线。 当在系列中有许多数据时,建议设置LineOptimization = Hairline 来避免出现性能问题。

微信截图_20220513102016.png 图:黄线: LineStyle.LineOptimization = Hairline. 红线: LineStyle.LineOptimization = NormalShaded.

除了LineStyle设置外,PointLineSeries3D还具有ClosedLine -属性,当启用该属性时,会自动连接该系列的第一个和最后一个数据点。从LightningChart 9.0版开始此属性可用。

//连接第一点和最后一点
pointLineSeries3D.ClosedLine = true;

添加点

PointLineSeries3D 支持三种不同的点格式:

• Points s属性 (SeriesPoint3D 数组)

• PointsCompact 属性(SeriesPointCompact3D 数组)

• PointsCompactColored 属性(SeriesPointCompactColored3D 数组)

PointsCompact 和PointsCompactColored 结构可非常有效利用内存,可以利用简单的点样式实现多达1亿个数据点可视化。通过PointsType属性可以设置点的格式。

使用Points 属性,可以支持所有高级的着色选项。SeriesPoint3D 结构包括以下字段:

double X: X轴值

double Y: Y 轴值

double Z: Z 轴值

Color color: 单个数据点颜色,仅当开启IndividualPointColors或MultiColorLine后可应用。

float sizeFactor: 尺寸系数乘以由PointStyle.Size定义的尺寸大小。仅当开启IndividualPointSizes后可应用。

object Tag: 可自由分配的辅助对象,例如附加一些细节。

系列点必须以代码进行添加。用 AddPoints(…)方法在现有点的末端添加点。

SeriesPoint3D[] pointsArray = new SeriesPoint3D [3];
pointsArray [0] = new SeriesPoint3D (50, 50, 50);
pointsArray [1] = new SeriesPoint3D (30, 50, 20);
pointsArray [2] = new SeriesPoint3D (80, 50, 80);

chart.View3D.PointLineSeries3D[0].AddPoints(pointsArray); //在末端添加点

若要一次性设置全部系列数据,并覆盖旧的点,可以直接分配新点数组:

chart.View3D.PointLineSeries[0].Points = pointsArray; //分配点数组

PointsCompact

PointsCompact 属性能够使内存消耗低,这在拥有大量数据点时非常重要。

SeriesPointCompact3D 结构包括以下字段:

float X: X 轴值

float Y: Y轴值

float Z: Z 轴值

SeriesPointCompact3D[] pointsArray = new SeriesPointCompact3D[3];
pointsArray [0] = new SeriesPointCompact3D(50, 50, 50);
pointsArray [1] = new SeriesPointCompact3D(30, 50, 20);
pointsArray [2] = new SeriesPointCompact3D(80, 50, 80);

chart.View3D.PointLineSeries3D[0].AddPoints(pointsArray); //在末端添加点

若要一次性设置全部系列数据,并覆盖旧的点,可以直接分配新点数组:

chart.View3D.PointLineSeries[0].PointsCompact = pointsArray; //分配点数组

PointsCompactColored

PointsCompactColored 属性能够使内存消耗低,这在拥有大量数据点时非常重要,但仍然可以用单独的颜色对点进行着色。

SeriesPointCompactColoured3D 结构包含以下字段:

float X: X 轴值

float Y: Y 轴值

float Z: Z 轴值

int Color: 点的颜色

SeriesPointCompactColored3D[] pointsArray = new SeriesPointCompactColored3D[3];
pointsArray [0] = new SeriesPointCompactColored3D(50, 50, 50, Color.Blue.ToArgb());

pointsArray [1] = new SeriesPointCompactColored3D(30, 50, 20, Color.Red.ToArgb());

pointsArray [2] = new SeriesPointCompactColored3D(80, 50, 80, Color.Green.ToArgb());

chart.View3D.PointLineSeries3D[0].AddPoints(pointsArray); //在末端添加数据

若要一次性设置全部系列数据,并覆盖旧的点,可以直接分配新点数组:

chart.View3D.PointLineSeries[0].PointsCompactColored = pointsArray; //分配点数组

单独对点着色

设置 IndividualPointColors = True,点的颜色字段应用,代替了Material.DiffuseColor

微信截图_20220513111703.png 图:IndividualPointColors应用示例

注意!当设置PointsType = PointsCompact时,不支持单独点着色。

单独设置点大小

设置 IndividualPointSizes = True, 点的sizeFactor 字段生效。系数乘以在中PointStyle.Size定义的尺寸大小。

微信截图_20220513111756.png 图: IndividualPointSizes 应用示例

多色线

用给定的数据点颜色对线着色,可设置MultiColorLine = True。图表在相邻点之间内插颜色渐变

微信截图_20220513111838.png 图:MultiColorLine开启.

注意! 当设置PointsType = PointsCompact时,不支持MultiColorLine。

显示无数的散点

演示示例: Point cloud

设置PointsOptimization = Pixels,能够显示数量非常大的散点。每个系列点将会渲染为一个单像素。若要显示1000万或1亿个数据点,可使用PointsCompact (参阅本章节前文)或 PointsCompactColored (参阅本章节前文)方法来保持内存需求发挥作用。

微信截图_20220513112032.png 图:无数的散点. LineVisible = False, PointsVisible = True, PointsOptimization = Pixels.

微信截图_20220513112105.png 图:IndividualPointsColoring = True, 使用PointsCompactColored, LineVisible = False, PointsVisible = True;1.2亿个分散点

用矩形可以最有效地显示数百万个数据点。当使用PointsCompactColored 或PointsCompact, 点的大小可以用来PointStyle.Shape2D.Width 和PointStyle.Shape2D.Height控制。

微信截图_20220513112200.png 图:PointStyle.Shape2D,Width = 20 且PointStyle.Shape2D.Height = 10.

关于LightningChart数据可视化图形控件使用篇34-3D模型空间中的·PointLineSeries3D章节就分享到这里了。

如果在实际应用中遇到技术问题或需要帮助,可以添加下方微信号联系官方技术支持。

微信号:lightningchart_china

如果您想进一步使用LightningChart数据可视化图形控件,请添加后回复“学习”可免费领取一套全功能版LightningChart数据可视化控件。

后续我会不断更新LightingChart更详细的使用方法,写文不易,还望多多回复关注支持!谢谢!

最新版V10 LightningChart下载地址:猛击下载