## Honeycomb Geometry

Rigid Motions on the Hexagonal Grid

The figure comes from "Insects The Yearbook of Agriculture 1952" United States Dept. of Agriculture." Published by the US Government Printing Office. Deemed to be in the Public Domain under US Law.

by Kacper Pluta, Pascal Romon, Yukiko Kenmochi and Nicolas Passat

## Motivations

We came to agree with Nouvel & Rémila that digitized rigid motions defined on the square grid are burdened with a fundamental incompatibility between rotations and the geometry of the grid.

## Agenda

• Introduction to the Bees' Point of View

• Quick Introduction to Rigid Motions

• Neighborhood Motion Maps

• Contributions

• Conclusions & Perspectives
The beehive figure's source and author unknown (if you recognize it, please let me know). The image of the bee comes from http://karenswhimsy.com/public-domain-images (public domain)

## Introduction to the Bees' Point of View

Or why bees are right

The figure comes from http://thegraphicsfairy.com/vintage-clip-art-bees-with-honeycomb

## Square grid

+ Sampling is easy to define

## Hexagonal grid

+ Uniform connectivity

+ Equidistant neighbors

+ Sampling is optimal

- Sampling is not optimal (ask bees)

- Neighbors are not equidistant

- Memory addressing is not trivial

- Sampling is difficult to define

## Square grid

+ Sampling is easy to define

## Hexagonal grid

+ Uniform connectivity

+ Equidistant neighbors

+ Sampling is optimal

~ Memory addressing is not trivial

~ Sampling is difficult to define

## Pros and Cons

The figure by Pearson Scott Foresman, Wikimedia.

Howdy vision lads and gals! These problems seem to be somehow solved.

- Sampling is not optimal (ask bees)

- Neighbors are not equidistant

## Square grid

+ Sampling is easy to define

## Hexagonal grid

+ Uniform connectivity

+ Equidistant neighbors

+ Sampling is optimal

~ Memory addressing is not trivial

~ Sampling is difficult to define

## Pros and Cons

The figure by Pearson Scott Foresman, Wikimedia.

You may think: "Hold your horses! It’s not a bug, it’s a feature..."

- Sampling is not optimal (ask bees)

- Neighbors are not equidistant

## Hexagonal Grid

\Lambda = \mathbb{Z}\epsilon_1 \oplus \mathbb{Z}\epsilon_2
$\Lambda = \mathbb{Z}\epsilon_1 \oplus \mathbb{Z}\epsilon_2$

The hexagonal lattice:

and the hexagonal grid

\mathcal{H}
$\mathcal{H}$

## Digitization Model

The digitization operator is defined as a function

\mathcal{D}: \mathbb{R}^2 \rightarrow \Lambda
$\mathcal{D}: \mathbb{R}^2 \rightarrow \Lambda$

such that

\forall \mathbf{x} \in \mathbb{R}^2, \exists! \mathcal{D}(\mathbf{x}) \in \Lambda
$\forall \mathbf{x} \in \mathbb{R}^2, \exists! \mathcal{D}(\mathbf{x}) \in \Lambda$
\mathbf{x} \in \mathcal{C}(\mathcal{D}(\mathbf{x})).
$\mathbf{x} \in \mathcal{C}(\mathcal{D}(\mathbf{x})).$

and

## Digitization Model

This is a definition for digital geometers not for computer vision guys...

The digitization operator is defined as a function

\mathcal{D}: \mathbb{R}^2 \rightarrow \Lambda
$\mathcal{D}: \mathbb{R}^2 \rightarrow \Lambda$

such that

\forall \mathbf{x} \in \mathbb{R}^2, \exists! \mathcal{D}(\mathbf{x}) \in \Lambda
$\forall \mathbf{x} \in \mathbb{R}^2, \exists! \mathcal{D}(\mathbf{x}) \in \Lambda$
\mathbf{x} \in \mathcal{C}(\mathcal{D}(\mathbf{x})).
$\mathbf{x} \in \mathcal{C}(\mathcal{D}(\mathbf{x})).$

and

## How many digital balls do you see?

The figure of bumble bee comes from http://www.ase.org.uk (public domain)

## Quick Lesson on Rigid Motions

Or how to become a beekeeper. Part I - Equipment

The figure comes from Wikimedia. Original source  The New Student's Reference Work (public domain)

\left| \begin{array}{lllll} \mathcal{U} & : & \mathbb{R}^2 & \to & \mathbb{R}^2 \\ & & \mathbf{x} & \mapsto & \mathbf{R} \mathbf{x} + \mathbf{t} \end{array} \right.
$\left| \begin{array}{lllll} \mathcal{U} & : & \mathbb{R}^2 & \to & \mathbb{R}^2 \\ & & \mathbf{x} & \mapsto & \mathbf{R} \mathbf{x} + \mathbf{t} \end{array} \right.$

## Rigid Motions on

\mathbb{R}^2
$\mathbb{R}^2$

## Properties

• Isometry map - distance preserving map

• Bijective

U = \mathcal{D}\ \circ \mathcal{U}_{|\Lambda}
$U = \mathcal{D}\ \circ \mathcal{U}_{|\Lambda}$
\Lambda
$\Lambda$

## Properties

- Non-injective

- Non-surjective

- Do not preserve distances

\mathcal{U}(\Lambda)
$\mathcal{U}(\Lambda)$

## Related Studies

• Nouvel, B., Rémila, E.: On colorations induced by discrete rotations. In: DGCI, Proceedings. Volume 2886 of Lecture Notes in Computer Science., Springer (2003) 174–183

• Pluta, K., Romon, P., Kenmochi, Y., Passat, N.: Bijective digitized rigid motions on subsets of the plane. Journal of Mathematical Imaging and Vision (2017)

## Contributions in Short

• Extension of the former framework to the hexagonal grid

• Comparison of the loss of information between the hexagonal and square grids

• Complete set of neighborhood motion maps

• Source code of a tool to study digitized rigid motions on the hexagonal grid

Pure extracted honey

## Neighborhood Motion Maps

Or a manual of instructions in apiculture

The figure comes from Wikimedia. The original source The honey bee: a manual of instruction in apiculture (public domain)

## Neighborhood

The neighborhood of

\kappa \in \Lambda
$\kappa \in \Lambda$

r \in \mathbb{R}_+
$r \in \mathbb{R}_+$

)

\mathcal{N}_r(\kappa) = \big\{ \kappa + \delta \in \Lambda \mid \|\delta \|^2 \leq r \big\}
$\mathcal{N}_r(\kappa) = \big\{ \kappa + \delta \in \Lambda \mid \|\delta \|^2 \leq r \big\}$

## Neighborhood Motion Maps

The neighborhood motion map of

\kappa \in \Lambda
$\kappa \in \Lambda$

with respect to

r \in \mathbb{R}_+
$r \in \mathbb{R}_+$
U
$U$

and

is the function

\left| \begin{array}{lllll} \mathcal{G}^U_r & : & \mathcal{N}_r(0) & \to & \mathcal{N}_{r'}(0) \\ & & \delta & \mapsto & U(\kappa + \delta) - U(\kappa). \end{array} \right.
$\left| \begin{array}{lllll} \mathcal{G}^U_r & : & \mathcal{N}_r(0) & \to & \mathcal{N}_{r'}(0) \\ & & \delta & \mapsto & U(\kappa + \delta) - U(\kappa). \end{array} \right.$

## Remainder Map step-by-step

\mathcal{U}(\kappa + \delta) = \mathbf{R}\delta + \mathcal{U}(\kappa)
$\mathcal{U}(\kappa + \delta) = \mathbf{R}\delta + \mathcal{U}(\kappa)$

## Remainder Map step-by-step

Without loss of generality,

U(\kappa)
$U(\kappa)$

is an origin, then

\mathcal{U}(\delta) = \mathbf{R}\delta + \mathcal{U}(\kappa) - U(\kappa)
$\mathcal{U}(\delta) = \mathbf{R}\delta + \mathcal{U}(\kappa) - U(\kappa)$

## Remainder Map step-by-step

Remainder map defined as

\mathcal{F}(\kappa) = \mathcal{U}(\kappa) - U(\kappa) \in \mathcal{C}(\mathbf{0})
$\mathcal{F}(\kappa) = \mathcal{U}(\kappa) - U(\kappa) \in \mathcal{C}(\mathbf{0})$

where the range

\mathcal{C}(\mathbf{0})
$\mathcal{C}(\mathbf{0})$

is called the remainder range.

## Remainder Map step-by-step

Critical cases can be observed via the relative positions of

\mathcal{F}(\kappa)
$\mathcal{F}(\kappa)$
\mathcal{H} - \mathbf{R}\delta
$\mathcal{H} - \mathbf{R}\delta$

that is to say

\mathcal{C}(\mathbf{0}) \cap (\mathcal{H} - \mathbf{R}\delta).
$\mathcal{C}(\mathbf{0}) \cap (\mathcal{H} - \mathbf{R}\delta).$

which are formulated by the translation

## Remainder Map and Critical Rigid Motions

\mathscr{H} = \bigcup \limits_{\delta \in \mathcal{N}_r(\mathbf{0})} (\mathcal{H} - \mathbf{R}\delta) \cap \mathcal{C}(\mathbf{0})
$\mathscr{H} = \bigcup \limits_{\delta \in \mathcal{N}_r(\mathbf{0})} (\mathcal{H} - \mathbf{R}\delta) \cap \mathcal{C}(\mathbf{0})$

## Frames

Each region bounded by critical lines is called a frame.

## Frames

Each region bounded by critical lines is called a frame.

For any

\kappa, \lambda \in \Lambda, \mathcal{G}^U_r(\kappa) = \mathcal{G}^U_r(\lambda)
$\kappa, \lambda \in \Lambda, \mathcal{G}^U_r(\kappa) = \mathcal{G}^U_r(\lambda)$

if and only if

\mathcal{F}(\kappa)
$\mathcal{F}(\kappa)$

and

\mathcal{F}(\lambda)
$\mathcal{F}(\lambda)$

are in the same frame.

Proposition

## Contributions

Or extracting the pure, organic honey

The figure comes from Wikimedia. The original comes from A practical treatise on the hive and honey-bee (public domain)

\mathcal{F}(\Lambda)
$\mathcal{F}(\Lambda)$

For what kind of parameters has the mapping a finite number of images?

## Rational Rotations

\mathcal{F}(\Lambda)
$\mathcal{F}(\Lambda)$

If

\cos\theta = \frac{2a -b}{2 c}
$\cos\theta = \frac{2a -b}{2 c}$

and

\sin\theta = \frac{\sqrt{3}b}{2 c}
$\sin\theta = \frac{\sqrt{3}b}{2 c}$

where

(a,b,c)\in \mathbb{Z}^3, \gcd(a,b,c) = 1
$(a,b,c)\in \mathbb{Z}^3, \gcd(a,b,c) = 1$

and

0 < a < c < b,
$0 < a < c < b,$

Corollary

then the mapping has a finite number of images.

## Conclusions & Perspectives

• An extension of a framework to study digitized rigid motions

• Characterization of rational rotations

• We have showed that the loss of information is relatively lower for digitized rigid motions defined on the hexagonal grid

• Our tools on BSD-3 license: https://github.com/copyme/NeighborhoodMotionMapsTools

The humble bees have been working with David Cœurjolly, Tristan Roussillon and Victor Ostromoukhov of University Lyon 1, LIRIS on some new exciting results. Stay tuned...

## Homework

If you want to get into the honey business, then this book is an obligatory lecture: Middleton, Lee, and Jayanthi Sivaswamy. Hexagonal image processing: A practical approach. Springer Science & Business Media, 2006.

By Kacper Pluta

# Honeycomb Geometry: Rigid Motions on the Hexagonal Grid

Presentation of a paper under the same name. The presentation was created for some internal proposes.

• 573
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 38, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 1, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0, "math_score": 0.9707658290863037, "perplexity": 14912.804836713292}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "plain"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "warc_path": "s3://commoncrawl/crawl-data/CC-MAIN-2020-24/segments/1590348513230.90/warc/CC-MAIN-20200606093706-20200606123706-00368.warc.gz"}