开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 2630|回复: 0

LightningChart数据可视化工具使用篇52-PointLineSeries3D_点线系列

[复制链接]

0

精华

10

贡献

2071

赞扬

帖子
141
软币
3968
在线时间
255 小时
注册时间
2021-1-21
发表于 2021-10-22 15:33:30 | 显示全部楼层 |阅读模式
LightningChart数据可视化工具使用篇52-PointLineSeries3D_点线系列




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

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

图:一个PointLineSeries3D 示例, PointStyle的 Shape设置为Sphere.

点样式
点可以显示为真实的3D点,也可以显示为2D形状。
微信截图_20211022143818.png

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





微信截图_20211022143856.png

图:对红色十字设置ShapeType = Shape2D. 青色与绿色设置ShapeType = Shape3D.

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


线条样式
微信截图_20211022144002.png

图:LineStyle properties.



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

图:黄线: LineStyle.LineOptimization = Hairline. 红线: LineStyle.LineOptimization = NormalShaded.


除了LineStyle设置外,PointLineSeries3D还具有ClosedLine -属性,当启用该属性时,会自动连接该系列的第一个和最后一个数据点。从LightningChart 9.0版开始此属性可用。
[C#] 纯文本查看 复制代码
//连接第一点和最后一点[/size]
[size=4]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(…)方法在现有点的末端添加点。

[C#] 纯文本查看 复制代码
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);


[C#] 纯文本查看 复制代码
chart.View3D.PointLineSeries3D[0].AddPoints(pointsArray); //在末端添加点


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


[C#] 纯文本查看 复制代码
chart.View3D.PointLineSeries[0].Points = pointsArray; //分配点数组


PointsCompact

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

SeriesPointCompact3D 结构包括以下字段:



float X: X 轴值

float Y: Y轴值

float Z: Z 轴值


[C#] 纯文本查看 复制代码
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);



[C#] 纯文本查看 复制代码
chart.View3D.PointLineSeries3D[0].AddPoints(pointsArray); //在末端添加点


若要一次性设置全部系列数据,并覆盖旧的点,可以直接分配新点数组:
[C#] 纯文本查看 复制代码
chart.View3D.PointLineSeries[0].PointsCompact = pointsArray; //分配点数组



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


SeriesPointCompactColoured3D 结构包含以下字段:


float X:     X 轴值
float Y:     Y 轴值
float Z:     Z 轴值
int Color:  点的颜色

[C#] 纯文本查看 复制代码
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); //在末端添加数据



若要一次性设置全部系列数据,并覆盖旧的点,可以直接分配新点数组:
[C#] 纯文本查看 复制代码
chart.View3D.PointLineSeries[0].PointsCompactColored = pointsArray; //分配点数组



单独对点着色
设置 IndividualPointColors = True,点的颜色字段应用,代替了Material.DiffuseColor
微信截图_20211022144920.png

图:IndividualPointColors应用示例


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

单独设置点大小

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

微信截图_20211022145022.png

图:IndividualPointSizes 应用示例

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

多色线

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

图:MultiColorLine开启.


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

显示无数的散点

演示示例: Point cloud

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

图:无数的散点. LineVisible = False, PointsVisible = True, PointsOptimization = Pixels.



微信截图_20211022145433.png

图:IndividualPointsColoring = True, 使用PointsCompactColored, LineVisible = False, PointsVisible = True;1.2亿个分散点


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

图: PointStyle.Shape2D,Width = 20 且PointStyle.Shape2D.Height = 10.




关于PointLineSeries3D(3D点线系列)章节就分享到这里了。



如果在实际应用中遇到技术问题或需要帮助,可以扫描下方微信二维码联系LightningChart官方技术支持。



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

b5354b9436db344e96ae6ae2fa1fedf.jpg



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

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






回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-3-29 20:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表