honeycomb evolution

get hexadron tessellation using random search
917 descargas
Actualizado 10 ene 2011

Ver licencia

http://simulations.narod.ru/

This is a honeycomb evolution simulation. In bees evolution using trial and error method found optimal tessellation of 2d space. They minimized wax using to build walls, so total length of walls in all honeycomb is to minimize. Also different cells must have about same area.

In the code walls was parameterized using voronoi diagram. The geometry is looped: down edge of picture is up edge of the picture, left edge of picture is up right of the picture. It is like periodic boundary condition. The rectangle displayed actually repeated 3x3=9 times. Then voronoi diagram applied. Only in middle rectangle voronoi diagram part used in total length Ls calculation. To prevent moving points to one stack there not Ls minimized but Ls_ex = Ls + const/min_dist, where min_dist minimal distance between points.

Random search used.. In iteration of random search it search minimum Ls_ex each time. In each iteration the code try random position of points near current positions. Zone of random search is contracted exponentially with iterations.

Run honeycombs.m to start simulation.

Some times hexadrons not so uniform as in gif-animated here.

Animation:
http://www.youtube.com/watch?v=EIrA0fMqmq8

honeycombs_avi.m to make avi file
honeycombs_gif.m to make gif file

auxilary functions:
segment_rectange.m finds length of cross of segment and rectangle
cross_perimeter.m find points of cross of rectengle perimeter and segment

Citar como

Maxim Vedenyov (2024). honeycomb evolution (https://www.mathworks.com/matlabcentral/fileexchange/29990-honeycomb-evolution), MATLAB Central File Exchange. Recuperado .

Compatibilidad con la versión de MATLAB
Se creó con R2009a
Compatible con cualquier versión
Compatibilidad con las plataformas
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Versión Publicado Notas de la versión
1.1.0.0

Some errors fixed

1.0.0.0