高性能图表控件LightningChart中3D视图问题解答

LightningChart.NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学,工程,医学,航空,贸易,能源和其他领域的体绘制功能。
点击下载LightningChart.NET最新试用版

问:想创建这样的3D图形衍生函数图像,但是却出现

System.ArgumentOutOfRangeException问题,有什么错误?
void __3d(vector<int>y) { 
lightningChartUltimate1 = gcnew LightningChartUltimate(); 

lightningChartUltimate1->BeginUpdate(); 
cli::array<SeriesPoint3D>^ points = gcnew cli::array<SeriesPoint3D>(y.size()); 
for (size_t i = 0; i < y.size()-1; i++) { 
points[i].X = i * 0.2; 
points[i].Y = y[i + 1] - y[i]; 
points[i].Z = i * 0.2; 
} 
lightningChartUltimate1->View3D->PointLineSeries3D[0]->Points = points; //System.ArgumentOutOfRangeException:Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index 
lightningChartUltimate1->EndUpdate();                                     
}

回复:需要创建PointLineSeries3D对象并将其添加到集合View3D-> PointLineSeries3D,因为最初的集合为空。
3D图表Winforms C ++示例一样发布了它

void __3dchart(vector<int> y)
{
chart3d->BeginUpdate();
chart3d->Parent = tabControl1->TabPages[1];
chart3d->Name = "3D line plot";
chart3d->ActiveView = ActiveView::View3D;
//create Series obj
auto series = gcnew PointLineSeries3D(chart3d->View3D, Axis3DBinding::Primary, Axis3DBinding::Primary, Axis3DBinding::Primary);
series->PointStyle->Shape3D = PointShape3D::Sphere;
series->PointStyle->Size3D->SetValues(1, 1, 1);
series->Material->DiffuseColor = Color::Navy;
series->Material->SpecularColor = Color::Red;
series->Material->SpecularPower = 20;
series->LineVisible = true;
series->LineStyle->AntiAliasing = LineAntialias::Normal;
series->LineStyle->Color = Color::FromArgb(100, Color::Red);
series->LineStyle->Width = 0.2f;
series->LineStyle->LineOptimization = LineOptimization::NormalWithShading;
series->PointsVisible = false;
chart3d->View3D->PointLineSeries3D->Add(series);//add series

auto series1 = chart3d->View3D->PointLineSeries3D[0];
        series1->Clear();//clear for new  points
cli::array<SeriesPoint3D> ^ points = gcnew cli::array<SeriesPoint3D>(y.size()); 
vector<double> yz;//for max min XYZ correction
for (size_t i = 0; i < y.size() - 1;i++) {
points[i].X = points[i].Z = i*0.2;
double v = points[i].Y =  y[i+1] - y[i];
yz.push_back(v); 
}
//XYZ correction
chart3d->View3D->YAxisPrimary3D->Maximum = *std::max_element(std::begin(yz), std::end(yz));
chart3d->View3D->YAxisPrimary3D->Minimum = *std::min_element(std::begin(yz), std::end(yz));
chart3d->View3D->XAxisPrimary3D->Maximum = yz.size()*0.2;//maxX
chart3d->View3D->ZAxisPrimary3D->Maximum = yz.size()*0.2;//maxZ

series1->Points = points;
chart3d->EndUpdate();
}

如果对此有任何疑问,请联系客服以获取更多信息。

如果您对该图表控件感兴趣,可以在慧都网免费下载最新试用版,了解更多产品信息请点击【咨询在线客服】,加入图表控件QQ交流群:740060302

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值