根据特定点的Z值,让3D表面在不同区域具有不同的颜色是常见的做法。为了实现这一点,我只需在我的ILSurface对象上调用mehtod UpdateColormapped。我想在三维绘图立方体内使用二维ILLinePlot做同样的事情,因此颜色随着线图的Y值而变化。我直接在ILNumerics网站上询问如何做到这一点并得到以下答案:
“当然,这很简单:
1)将ILLinePlot的Line.Colors('Colors'而非'Color'!)属性设置为所需的颜色。
2)设置实心Color = null('Color'而不是'Colors'!)和
3)最后调用Line.Configure()将颜色推送到渲染器。
ILColormap.Map()函数可以帮助您根据某些色彩映射为所有行顶点创建颜色。或者,您可以手动创建颜色数组。 如果你在使用它时遇到问题,你可以在stackoverflow上打开一个新线程。“
不幸的是我不明白他们的意思。有些人可以帮我按照上面的说明完成这段代码:
ILLinePlot my2DlinePlot = new ILLinePlot();
my2DlinePlot.Line.Colors = ?
my2DlinePlot.Line.Color = null;
my2DlinePlot.Line.Configure();
答案 0 :(得分:1)
// your data for plotting
ILArray<float> A = new float[]{0,3,2,-1,4,2}; // replace with your data
ILLinePlot my2DlinePlot = new ILLinePlot(A);
// map the Y values in A to colors using a colormap
var cm = new ILColormap(Colormaps.Jet);
my2DlinePlot.Line.Colors = cm.Map(A).T; // colors data must be 3xn or 4xn
my2DlinePlot.Line.Color = null;
my2DlinePlot.Line.Configure();
Map()的在线文档:http://ilnumerics.net/apidoc/?topic=html/M_ILNumerics_Drawing_Plotting_ILColormap_Map.htm