Примените цвет для каждой точки PointCloud, используя HelixToolkit
Я создал облако точек в HelixToolKit. Мне нужно применить цвет для каждой точки. Когда я использую PointVisual3D, нет возможности установить цвет для каждой точки. Он установил цвет для всего облака точек. Когда я использую PointGeometryModel3D (используя SharpDX) в наборе инструментов Helix, я также не могу установить цвет для каждой точки. Есть возможность установить цвет для каждой точки облака точек.
Спасибо...
1 ответ
Обычно это делается путем установки свойства Colors в объекте PointGeometry3D вашего PointGeometryModel3D. Вы должны построить геометрию самостоятельно.
- Создать позиции рендеринга
- Создать цвета
Сообщите визуализатору порядок вашей позиции и цвета (список индексов в позициях / цветах)
//create PointGeometryModel3D object PointGeometryModel3D pgm = new PointGeometryModel3D(); //create positions pgm.Geometry.Positions = new HelixToolkit.Wpf.SharpDX.Core.Vector3Collection(); pgm.Geometry.Positions.AddRange( new SharpDX.Vector3[] { new SharpDX.Vector3(0,1,2), new SharpDX.Vector3(1,2,3), new SharpDX.Vector3(3,2,3), }); //create colors pgm.Geometry.Colors = new HelixToolkit.Wpf.SharpDX.Core.Color4Collection(); pgm.Geometry.Colors.AddRange( new SharpDX.Color4[] { new SharpDX.Color4(1f,0,0,1), new SharpDX.Color4(0,1f,0,1), new SharpDX.Color4(0,0,1f,1) }); //create indices pgm.Geometry.Indices = new HelixToolkit.Wpf.SharpDX.Core.IntCollection(); pgm.Geometry.Indices.AddRange( new int[] { 0, 1, 2, });
Пожалуйста, дайте мне знать, если это сработало для вас. Я не мог заставить его работать с LineGeometry3D и различными цветами линий. Где-то должна быть возможность заставить рендерер использовать цветовые вершины вместо (одного) цветового свойства.