如何根据wpf(c#)中的点高度为3d网格着色?
我正在开发c#3D wpf visual studio 2015 我使用XYZ坐标创建了一个网格, 积分将近400多万, 基于Z轴,我需要为整个网格着色,而不是像高度贴图一样着色 这用于将位置添加到点:如何根据wpf(c#)中的点高度为3d网格着色?,c#,wpf,3d,C#,Wpf,3d,我正在开发c#3D wpf visual studio 2015 我使用XYZ坐标创建了一个网格, 积分将近400多万, 基于Z轴,我需要为整个网格着色,而不是像高度贴图一样着色 这用于将位置添加到点: MeshGeometry3D cube = new MeshGeometry3D(); cube.Positions.Add(new Point3D(X[i], Y[i], Z[i])); 要创建索引,请执行以下操作: cube.TriangleIndices.Add(m); cube.T
MeshGeometry3D cube = new MeshGeometry3D();
cube.Positions.Add(new Point3D(X[i], Y[i], Z[i]));
要创建索引,请执行以下操作:
cube.TriangleIndices.Add(m);
cube.TriangleIndices.Add(m + 1);
cube.TriangleIndices.Add((m + 1) + line);
cube.TriangleIndices.Add((m + 1) + line);
cube.TriangleIndices.Add((m + 2) + line);
cube.TriangleIndices.Add(m);
在这里,颜色应该迭代到最后,而不是基于高度的浅蓝色
byte rr = 0;
for (int pp = 0; pp < l; pp++) //l is the number of points
{
Color cc = Color.FromArgb(rr, 0, 0, 0);
myHorizontalGradient.GradientStops.Add(new GradientStop(cc, 5));
mGeometry = new GeometryModel3D(cube, new DiffuseMaterial(myHorizontalGradient));
mGeometry.Transform = new Transform3DGroup();
group.Children.Add(mGeometry);
rr++;
if (rr > 255)
{
rr = 0;
}
}
字节rr=0;
for(int-pp=0;pp255)
{
rr=0;
}
}
这就是迭代颜色的方法,现在我只尝试了红色,但不起作用您是否使用了
GeometryModel3D
的材质
和背景材质
属性?另外,您是如何使用myHorizontalGradient的?我看到它被定义,但没有被消费。不,我仍然是wpf的新手。但我尝试了一些其他方法,但没有成功,请你给我任何参考,我正在寻找。我刚刚做了。演示如何使用渐变?LinearGradientBrush myHorizontalGradient=新的LinearGradientBrush();字节rr=0;对于(int pp=0;pp byte rr = 0;
for (int pp = 0; pp < l; pp++) //l is the number of points
{
Color cc = Color.FromArgb(rr, 0, 0, 0);
myHorizontalGradient.GradientStops.Add(new GradientStop(cc, 5));
mGeometry = new GeometryModel3D(cube, new DiffuseMaterial(myHorizontalGradient));
mGeometry.Transform = new Transform3DGroup();
group.Children.Add(mGeometry);
rr++;
if (rr > 255)
{
rr = 0;
}
}