.NET 6 WPF C1Chart3D 如何设置圆形的grid layout
以前用WinForm 版本的 C1Chart3D 时可通过 Chart3DDataSetGrid 类来设置 圆形的grid layout, 代码如下:Chart3DDataSetGrid setGrid = new Chart3DDataSetGrid(-(waferDiameter / 2-edgeClude), -(waferDiameter / 2-edgeClude),
(waferDiameter-edgeClude)/(ContourSize - 1), (waferDiameter-edgeClude) / (ContourSize - 1), gridData);
setGrid.Hole = 0;
c1Chart3D1.BackColor = Color.Transparent;
c1Chart3D1.ChartGroups.ChartData.SetGrid = setGrid;
效果:
但是wpf 版本的C1Chart3D 没有Chart3DDataSetGrid 类, 请问有什么设置或者有什么方式能达到圆形的效果吗?现在只能是如下效果:
验证了一下,目前没有什么办法。刚刚电话中和你提到的是,如果刚好是俯视视角,那么可以通过其他的组件遮罩一下,但是从3dchart组件内部目前没法实现你的需求 你好,要设置圆形的网格布局(Layout)是比较困难的,因为 .NET 6 WPF C1Chart3D 默认的 Layout 是矩形的。不过你可以尝试下通过调整绘制的数据来实现类似圆形的布局。 :hjyzw: 波波虎 发表于 2023-5-22 23:02
你好,要设置圆形的网格布局(Layout)是比较困难的,因为 .NET 6 WPF C1Chart3D 默认的 Layout 是矩形的。不 ...
你好,有没有具体的例子来参照一下呢? 我还没见过怎么去调整绘制数据 下面是一个简单的示例代码,我也不清楚是不是你想要的效果:
private void DrawCircularData()
{
chart3D.ChartGroups.ChartData.SeriesList.Clear();
int numSlices = 10; // 设置圆形数据的切片数
double sliceAngle = 360.0 / numSlices;
int numPointsPerSlice = 5; // 每个切片中的点数
double sliceRadius = 50;
for (int i = 0; i < numSlices; i++)
{
ChartDataSeries dataSeries = new ChartDataSeries();
dataSeries.SymbolStyle.Shape = C1.WPF.Chart.ChartSymbolShapeEnum.Box;
double sliceStartAngle = i * sliceAngle;
double sliceEndAngle = sliceStartAngle + sliceAngle;
for (int j = 0; j < numPointsPerSlice; j++)
{
double pointAngle = sliceStartAngle + ((sliceEndAngle - sliceStartAngle) / (numPointsPerSlice - 1)) * j;
double pointRadius = sliceRadius;
double x = pointRadius * Math.Cos(pointAngle * Math.PI / 180.0f);
double y = pointRadius * Math.Sin(pointAngle * Math.PI / 180.0f);
double z = 5 * i;
dataSeries.XValues.Add(x);
dataSeries.YValues.Add(y);
dataSeries.ZValues.Add(z);
}
chart3D.ChartGroups.ChartData.SeriesList.Add(dataSeries);
}
}
以上代码将创建一个由 10 个切片组成的圆形网格布局,每个切片中包含 5 个点。这个圆形网格布局的中心点是(0,0,0),刻度尺度为 1。 波波虎 发表于 2023-5-23 22:58
下面是一个简单的示例代码,我也不清楚是不是你想要的效果:
private void DrawCircularData()
:hjyzw::hjyzw: 波波虎 发表于 2023-5-23 22:58
下面是一个简单的示例代码,我也不清楚是不是你想要的效果:
private void DrawCircularData()
你好,这个代码好像还是使用winform 版本的chart3d控件吧?wpf 版本的chart3d是通过这种方式来添加数据的Chart3DCtl.Children.Add(new GridDataSeries() { ZData = gridData});
ChartDataSeries 这个类 wpf chart3d 里根本找不到啊 WPF中,你也可以尝试一下,判断xy坐标,把在圆外的xy坐标对应的Z值设置为0,看看能否实现类型效果
Richard.Ma 发表于 2023-5-24 18:54
WPF中,你也可以尝试一下,判断xy坐标,把在圆外的xy坐标对应的Z值设置为0,看看能否实现类型效果
:hjyzw::hjyzw:
页:
[1]
2