Оптимизировать обратный многоугольник с атрибутами краяC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Оптимизировать обратный многоугольник с атрибутами края

Сообщение Anonymous »

У меня есть закрытый многоугольник, который имеет параметры атрибутов на каждом краю. Они хранятся в точке в начале следующего сегмента. Итак, точка [0] удерживает атрибут для точки края [0] -> точка [1]. < /P>
Теперь я хочу отменить многоугольник. Информация о краях, однако, теперь должна храниться в другой точке.#include
#include
#include
// assume
struct Point{
double x,y;
int att;
void setAttribute(int i){att=i;}
int attribute()const{return att;}
};

// and in my class I have
std::vector
m_PList;
// where the std::vector is a hybrid std::list/std::vector container. Anyway.

void reverseMyPoly(){
auto swapStuff = [](Point* a, const Point* b) {
a->setAttribute(b->attribute());
// there's a lot more attribute code here
};

auto copy = m_PList; // !! this one is expensive !!
std::reverse(m_PList.begin(), m_PList.end());
const size_t n = m_PList.size();

// Each point i in the reversed polygon gets the edge_type that was
// originally associated with the edge from (i+1) % n to (i) % n
for (size_t i = 0; i < n; ++i) {
size_t original_index = (n - i - 2 + n) % n;
swapStuff(&m_PList, &copy[original_index]);
}
}

int main()
{
m_PList = {{0,0,0}, {1,0,1}, {2,2,2}, {0,3,3}};
reverseMyPoly();

for(auto&p:m_PList){
std::cout

Подробнее здесь: https://stackoverflow.com/questions/796 ... attributes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»