По-прежнему выясняя, как правильно использовать ofMesh
, моя цель прямо сейчас состоит в том, чтобы облако точек, случайно подключенные точки (используя индексы) и возможность перетасовывать индексы при нажатии. Я указал в сторону использования Fisher-Yates Shuffle, но это не сработает до тех пор, пока я не выясню показатели.Манипулирование индексами в объекте Mesh
В настоящее время я создаю сетку, просто добавляя вершины со случайными координатами, но не явно определяя любые индексы. Когда я использую ofSetupIndicesAuto()
, он связывает индексы слишком аккуратно, и ofClearIndices()
ничего не делает, если я фактически не установил индексы в некотором пути.
Что-то я не понимаю, так это то, как вершины связаны, когда я не определяю их явно. Я предположил, что индексы настроены автоматически в порядке вершин, но я думаю, что нет.
Вот перетасовка я пытаюсь выполнить на индексах (помещенных в ofApp::mousePressed()
):
for (int i = numVerts - 1; i >= 0; i --) {
int index = (int)ofRandom(i);
int tempIndex = mesh.getIndex(index);
mesh.setIndex(index, mesh.getIndex(i));
mesh.setIndex(i, tempIndex);
}
Я обнаружил, что с помощью setupIndicesAuto() в foreach, который создает мои вершины, работает, чтобы определить индексы при запуске. Кажется, теперь я не могу понять, что Fisher Yates Shuffle ..., он не возвращает ошибки и не устанавливает никаких новых индексов. Отредактировано оригинальное сообщение, чтобы показать фрагмент для перетасовки. – aceslowman