Generating Aperiodic Tilings with Plane Waves

Click For Summary
SUMMARY

This discussion focuses on generating aperiodic tilings using plane waves, specifically addressing the challenges of achieving odd symmetry in patterns. The user successfully implements a method using Mathematica code, adjusting parameters such as symmetry ('sym') and resolution ('rez'). The key insight is that using a clipped sine function, Sinu = Max[Sin[v], 0], resolves the issue of double symmetry that arises with regular sine functions. The conversation highlights the mathematical principles behind wave interference and symmetry in tiling patterns.

PREREQUISITES
  • Understanding of aperiodic tilings and their mathematical properties
  • Familiarity with Mathematica programming and syntax
  • Knowledge of wave functions and their applications in mathematical modeling
  • Concept of symmetry in mathematical functions and patterns
NEXT STEPS
  • Explore advanced wave interference techniques in Mathematica
  • Research the mathematical theory behind Penrose tilings
  • Learn about the implications of symmetry in computational geometry
  • Investigate other functions that can generate aperiodic patterns
USEFUL FOR

Mathematicians, computer scientists, and artists interested in computational geometry, wave theory, and aperiodic tiling patterns.

cuallito
Messages
94
Reaction score
1
Hello, I saw an applet awhile ago during a late-night mathematical web-surfing marathon that used the addition of plane waves at different angles to generate aperiodic tilings (like the penrose tiling.) I haven't been able to find it again. I'm trying to make my own version of it, using the same idea.

Code:
xmin = -10; (*Min X coord to graph*)
xmax = 10; (*Max X coord to graph*)
ymin = -10; (*Min Y coord to graph*)
ymax = 10; (*Max Y coord to graph*)
rez = 300; (*Graph resolution*)
sym = 8; (*Directions of symmetry*)
v = 2*Pi*(Sin[i*2*Pi]*x + Cos[i*2*Pi]*y);
Sinu = Cos[v];
P = N[Sum[Sinu, {i, 0, (sym - 1)/sym, 1/sym}]]
MatrixPlot[ Table[P, {x, xmin, xmax, (xmax - xmin)/rez}, {y, ymin,   ymax, (ymax - ymin)/rez}]]

It works like a charm for even numbers of symmetry (change the 'sym' variable to play around with different fold symmetries), but for odd numbers of 'sym' it generates patterns with 2*sym-fold symmetry. I've tried everything, like using Exp[i*v] instead of Cos[v], varying the phase between each of the component waves, and even using Sinu=Cos[v]*UnitStep[v] to stop from getting 'extra' interference, but none of them gives me the correct result for odd numbers :( Help!?
 
Physics news on Phys.org
By construction, your pattern is symmetric for x-> -x, y-> -y, your v changes its sign and cosine is an even function. You cannot produce odd symmetry with it. Using Sinu=Sin[v] might work for odd symmetries.
 
For some reason, using a clipped Sine function seems to work:

Anyone know why? A regular sine function just creates the double symmetry problem again.

Code:
xmin = -10;
xmax = 10;
ymin = -10;
ymax = 10;
rez = 400;
sym = 5;
v = 2*Pi*(Sin[i*2*Pi]*x + Cos[i*2*Pi]*y);
Sinu = Max[Sin[ v], 0];
P = Sum[Sinu, {i, 0, (sym - 1)/sym, 1/sym}];
MatrixPlot[ Table[N[P], {x, xmin, xmax, (xmax - xmin)/rez}, {y, ymin,   ymax, (ymax - ymin)/rez}]]

penrose.png
 
Last edited:

Similar threads

  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
3
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
Replies
7
Views
2K
  • · Replies 6 ·
Replies
6
Views
31K
  • · Replies 41 ·
2
Replies
41
Views
6K