-1

Я работаю над проблемой резания, и мне нужно выяснить, как для представления решения.Структура данных для представления решения 2D резки материалов?

Например, посмотрите на это изображение, где серые области - неиспользованный материал.

enter image description here

Можете ли вы порекомендовать мне возможные представления? Кстати, для этого я использую C++.

Thanks

+1

Можете ли вы показать исходный код для некоторых представлений, которые вы уже пробовали? –

+1

Это очень дерево kD для 2D - реализует двоичное дерево, где каждый узел хранит измерение (X или Y), значение вдоль этого измерения (между 0 и 1, где 0 - один конец, а 1 - другой) и два указателя, которые указывают на дочерние элементы этого узла. Также реализуйте два вида листьев: GrayLeaf и WhiteLeaf. Имеет смысл? – cristicbz

+0

Нет, извините, у меня пока нет исходного кода или представления. Но да, похоже, мне понадобится древовидная структура. Я не уверен, я раньше не изучал эту проблему. – user2381422

ответ

1

Вы можете использовать вектор структур std::vector<sub> areas; как

struct sub 
{ 
    size_t x, y; 
    size_t extent_x, extent_y; 
    sub (void) : x(0U), y(0U), extent_x(0U), extent_y(0U) { } 
}; 

Где (х, у), а также (х + extent_x, у + extent_y) отображаются на точках общего изображения. Этот вектор может либо хранить использованные, либо неиспользуемые части изображения.

0

2D-изображение выглядит как системная память. Серая область - это нераспределенная память, а пустое пространство выделяется. Решение может быть похоже на управление памятью, выполняемое ОС.

Смежные вопросы