Вычисление контуров трехмерной карты высот?

Я ищу функцию или пример для создания списка линий, представляющих контуры на определенной высоте в карте высот.

Например,

Lines[] = GetContours(Heights[512,512], HeightValue) 

Где Heights - массив значений с плавающей запятой 512x512, HeightValue - высота, на которой должен быть нарисован контур. Высота может содержать несколько строк для этой конкретной высоты (например, седло или цепочка островов)

Кто-нибудь знает или знает, где взять алгоритм для его генерации?

7 голосов | спросил Adam Frisby 18 PMpSat, 18 Apr 2009 12:24:20 +040024Saturday 2009, 12:24:20

4 ответа


0

На самом деле вы пытаетесь нарисовать изо-линию.
посмотрите мой вопрос о его некоторое время назад .
Ссылка предоставлена в одном из ответов было очень полезно.

ответил shoosh 18 PMpSat, 18 Apr 2009 13:14:11 +040014Saturday 2009, 13:14:11
0

Стандартный алгоритм - это марширующие квадраты .

ответил marcog 18 PMpSat, 18 Apr 2009 13:15:09 +040015Saturday 2009, 13:15:09
0

Алгоритм:

а) Найдите, у каких полигонов есть вершины выше и ниже интересующей вас высоты.

b) Пересечь края этих многоугольников с плоскостью, чтобы получить линии на плоскости.

в) Соедините строки в полосы.

ответил Jimmy J 18 PMpSat, 18 Apr 2009 13:17:56 +040017Saturday 2009, 13:17:56
0

Посмотрите на Srtm2Osm , инструмент, который я создал для создания контуров из данных SRTM НАСА. Вы можете найти алгоритм в коде C #.

ответил Igor Brejc 18 PMpSat, 18 Apr 2009 13:29:03 +040029Saturday 2009, 13:29:03

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132