mrby123 Ответов: 2

Код сегментов для упаковки 3D сферы в прямоугольную коробку


Я ищу некоторый код для упаковки 3D - сфер с одинаковым радиусом - r в прямоугольную коробку-xmin, ymin, zmin и xmax, ymax, zmax. Другими словами, функция с входными данными: r, xmin, ymin, zmin и xmax, ymax, zmax и выходными данными: x(i), y(i), z(i), N, которые являются координатами центра сферы и количеством сфер в коробке. Упаковка должна быть близкой самой высокой плотности без перекрытия сфер. Максимальная плотность упаковки составляет 74,05% или минимальное соотношение пустот = 25,95% среди различных упаковок.

Упаковочные сферы | plus.maths.org[^][^]

[x,y,z,N]=функция spherePackingMinimumVoid (r, xmin, ymin, zmin и xmax, ymax, zmax)

Код на языке C++, Fortran или Matlab.

Спасибо

Что я уже пробовал:

Я попробовал наименее плотную упаковку, которая заключается в размещении сфер в кубических сетках. Коэффициент пустоты составляет 47,64%, что не является хорошей упаковкой.

OriginalGriff

И что же? Ты не задал ни одного вопроса!

А что вы пробовали?
Где ты застрял?
Какая помощь вам нужна?

2 Ответов

Рейтинг:
2

Rick York

Взгляните на Викоби : http://www.wykobi.com[^Это библиотека вычислительной геометрии с целой кучей полезных алгоритмов, таких как поиск ближайшей точки На сфере. Это может быть очень полезно для вас.


Рейтинг:
2

mrby123

спасибо. Я посмотрел Викоби, но там ничего не было для этой проблемы. Спасибо это полезная коллекция кода


Patrice T

Используйте кнопку "есть вопрос или комментарий?" обсудить с автором решение проблемы.

Rick York

Я не согласен. Алгоритм, который я упомянул, может быть использован, чтобы сделать именно то, что вы ищете. Существуют и другие подобные алгоритмы, которые также могут быть полезны.

Вы можете либо продолжать искать код, который решил проблему, либо копаться в нем и писать его самостоятельно. Есть много сайтов, которые показывают минимальную упаковку. Вы можете написать алгоритм, который определяет наилучшую ориентацию для упаковки. Мы не собираемся делать это для вас. У нас есть много забавных вещей, чтобы работать над собой.