Создайте 3D-поверхность очень быстро с помощью WPF, XAML и C#

Пример Нарисуйте гладкое 3D-изображение поверхность с WPF, XAML и C# рисует гладкую поверхность, но занимает около 16 секунд на моем компьютере. Пример Создание 3D-поверхности больше быстро с WPF, XAML и C# выполняет поиск дублирующих точек из задней части своей коллекции очков, поэтому он намного быстрее, занимая всего около 2 секунд.

В этом примере хранятся его точки в Dictionary (а также в коллекции, необходимой для кода чертежа WPF), поэтому он может быстрее находить точки. В этом примере используется следующий метод AddPoints для создания новых точек для поверхности.

// Словарь для хранения точек для быстрого поиска.
private Dictionary PointDictionary =
    new Dictionary();

// Если точка уже существует, верните ее индекс.
// В противном случае создаем точку и возвращаем новый индекс.
private int AddPoint(Point3DCollection points, Point3D point)
{
    // Если точка находится в точечном словаре,
    // возвращаем сохраненный индекс.
    if (PointDictionary.ContainsKey(point))
        return PointDictionary[point];

    // Мы не нашли смысла. Создать это.
    points.Add(point);
    PointDictionary.Add(point, points.Count - 1);
    return points.Count - 1;
}

Этот код создает словарь Dictionary для хранения индексов точек в коллекции точек. Метод AddPoint сначала использует метод ContainsKey объекта Dictionary объекта, чтобы увидеть, находится ли точка в коллекции. Если ContainsKey возвращает true, код получает индекс точки из словаря и возвращает его. Если это новая точка, метод добавляет ее в коллекцию точек и возвращает ее индекс.

Предыдущий пример строит свою поверхность менее чем за 2 секунды. В этом примере почти мгновенно создается модель данных.

Источник: http://csharphelper.com/blog/2014/10/create-a-3d-surface-really-quickly-with-wpf-xaml-and-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Adblock
detector