2D алгоритм схемы для спроектированной 3D сетки

Посмотрите на элемент управления ListBox , чтобы разрешить множественный выбор.


            
            
            
 

в коде позади

foreach(ListItem listItem in lblMultiSelect.Items)
    {
       if (listItem.Selected)
       {
          var val = listItem.Value;
          var txt = listItem.Text; 
       }
    }

25
задан ralphtheninja 21 December 2017 в 23:28
поделиться

4 ответа

  • Начните с самой правой точки (точки с наибольшей координатой x)
  • Получите все ребра из этой точки
  • Следуйте ребро с наименьшим углом к ​​положительной оси x, а также добавьте его в набор решений
  • От достигнутой точки следуйте и добавьте кромку с наименьшим углом к ​​кромке, от которой вы пришли
  • Повторяйте, пока не достигнете исходной точки
10
ответ дан 28 November 2019 в 21:55
поделиться

Метод альфа-форм, упомянутый в этом вопросе, обрабатывает общий набор точек, в которых соединения вершин неизвестны:

Есть ли эффективный алгоритм для создания 2D вогнутой оболочки?

Однако, поскольку вы уже знаете информацию о «лицах», которая может быть сохранена посредством проекции, это, вероятно, не лучший подход.

Может быть применим алгоритм грубой силы, особенно если используются структуры пространственной сортировки. например, для каждого фасета:

  1. Спроецировать фасет на плоскость
  2. Проверить, полностью ли спроецированный фасет заключен в существующую геометрию, если да: выполнено (нет необходимости расширять спроецированный силуэт)
  3. Если точки выходят за пределы существующей геометрии , сделайте пересечения треугольник-треугольник, чтобы определить, какие части выходят за пределы, построить произвольный n-угольник (возможно, вогнутый), чтобы заполнить недостающее пространство, затем разрежьте n-угольник на треугольники

Другая идея, в зависимости от требуемой точности, - это просто выстрелить пучком лучей, перпендикулярно плоскости вашей проекции к вашей исходной геометрии. Создайте двумерное попадание / промах и используйте его для определения своих размеров.

2
ответ дан 28 November 2019 в 21:55
поделиться

Это просто вопрос проецирования точек xyz на x'Y '

-1
ответ дан 28 November 2019 в 21:55
поделиться

I only see answers for convex solutions, so here is mine for non-convex. (Это немного сбивало с толку, каково было намерение.)

Возьмите все ребра из ваших 2D-треугольников и сгруппируйте их. Если два ребра имеют общие обе конечные точки, они находятся в одной группе. Все группы, имеющие только одно ребро, тогда являются частью оболочки.

Наконец, вы можете объединить ребра оболочки в одно кольцо, соединив их вместе.

3
ответ дан 28 November 2019 в 21:55
поделиться
Другие вопросы по тегам:

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