Как мы можем раскрасить 3d me sh в соответствии с высотой точек в wpf (c#)? - PullRequest
0 голосов
/ 29 января 2020

Я работаю над c# 3D wpf visual studio 2015

Я создал меня sh с помощью координаты XYZ, количество точек почти 4 миллиона, на основе оси Z Мне нужно раскрасить меня целиком * на 1022 * больше, чем на раскраску карты высот.

нужно раскрасить вот так

это для добавления позиции к Очки:

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);
myHorizontalGradient.GradientStops.Add(new GradientStop(Colors.LimeGreen, 5));
mGeometry = new GeometryModel3D(cube, new DiffuseMaterial(myHorizontalGradient));
group.Children.Add(mGeometry); 

здесь вместо светло-голубого цвета по высоте цвет должен повторяться до конца.

    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;
        }
    }

вот как это используется для итерации цвета, теперь я только что попробовал только для красного цвета, но это не сработало

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...