Moiré patronen

Datum: September 2008

Inleiding:

Men leest er iets over, men herkent het en wil er meer van weten.

Principe:

Op verschillende manieren Moiré effecten creëren.

Materiaal:

  • Overheadsheets
  • Schaar
  • Kammetjes
  • Computer met Python geïnstalleerd

  • Computer met Tekenprogramma

Uitvoering:

Met een overheadsheet:

Men kan tegenwoordig zelf heel gemakkelijk een experiment uitvoeren om Moirepatronen te creeeren. Hierbij maken we gebruik van een software pakket zoals MS Powerpoint, MS Visio of OpenOffice Presentations.  Ikzelf heb gebruik gemaakt van Visio. Stel het pakket dusdanig in dat men een rasterpatroon op lege pagina kan zien. Zoom zoveel mogelijk in en teken een aantal rechte lijnen voor met een lengte van ca. ½ pagina.  Probeer de afstand tussen de twee lijnen zo klein als maar mogelijk is te maken.

Probeer een vierkant te maken. Indien dat gelukt is kopieer dan het gehele vierkant naar een ander plaats op de pagina. Druk vervolgens de pagina af op een transparant (dit gaat het beste met een laserprinter) en knip de vierkanten uit. Leg de vierkanten over elkaar heen, lijn over lijn, en houdt een hoekpunt vast. Roteer vervolgens langzaam het tweede vierkant, terwijl men het onderste vierkant op zijn plaats houdt en de hoekpunt fixeert.
 
Met kammetjes:
Neem twee kammetjes. Leg ze op elkaar en beweeg ze vervolgens van elkaar waarbij je een punt probeert te fixeren. Observeer.
 
Op een computer door gebruik te maken van de programmeertaal Python:
Het is mogelijk om Moirepatronen te maken door ze te laten tekenen op een computer. In de tijd dat veel computers nog onder MS-DOS draaiden had men daar een programmeertaal, GWBASIC of QUICKBASIC,  voor beschikbaar. Indertijd kwamen veel boeken uit over chaos theorie waarin dan listings van programma's stonden in die talen. In een van die boeken die ik nog in mijn bezit heb, het boek van Lauwerier, stonden voorbeelden van programma's om Moiré patronen te tekenen. Tegenwoordig kan men gratis Microsoft Visual Basic downloaden, hetgeen ook voor dit doel gebruikt kan worden. Ik zocht echter naar een mogelijkheid om mijn Asus EeePc voor dit doel te gebruiken. De EeePc draait echter onder Linux draait en daar is Basic niet echt een veel voorkomend programmeertaal. Na wat onderzoek kwam ik tot de conclusie dat Python een zeer geschikte programmeertaal was waarin deze Basic programma's in overgezet konden worden. De taal is erg Basic achtig en men kan van een graphics module gebruik maken die erg lijkt op die van QuickBasic. Python is ook standaard binnen Linux aanwezig men hoeft dus geen ruimte op te offeren (hetgeen ik voor mijn eeePC wel belangrijk vindt). Python is ook beschikbaar binnen een Windows omgeving. Enkele van de programma's uit het boek van Lauwerier heb ik vervolgens overgezet naar Python.

Resultaat:

Overheadsheet:
 
Kammetjes:

Python programma's:

Discussie en conclusie:

Het Moiré-effect is de benaming van een optisch verschijnsel, waarbij twee roosters, onafhankelijk van elkaar, over elkaar heen bewegen en min of meer willekeurige patronen tonen.  Het is een optisch effect dat men wel eens waargenomen zal hebben zonder te weten hoe het benoemd wordt. Als men twee lagen dunne stof (bv vitrages) over elkaar legt kan men soms vreemde grillige patronen zien ontstaan. In de textielindustrie maakt men om esthetische redenen ook bewust gebruik van dit effect. Ook als men met een goedkope scanner een krantenartikel in scant ontstaan soms Moiré patronen.

In het algemeen geldt dat als men twee lagen stof met regelmatige openingen (bv vliegengaas, gaatjeskarton, maar zelfs met twee zakkammetjes) neemt en deze goed vlak op elkaar legt dan ziet men een regelmatig patroon van figuren ontstaat dat sterk verandert (groter of kleiner wordt) zodra een van de twee lagen maar iets verschuift.

Moirépatronen worden veroorzaakt door de wijze waarop rechte lijnen en herhalende patronen door het oog worden waargenomen. Als een reeks rechte lijnen of rasters op elkaar worden gelegd ontstaat in ons waarnemingssysteem een soort kortsluiting. Onze hersenen maken er een interferentiepatroon van. Men kan een Moiré patroon dus als een optische illusie beschouwen, het is er niet echt, maar je ziet het wel.

Het interferentie patroon dat we waarnemen is analoog aan dat wat men ziet bij fysische interactie van golf fronten en de hysterese (resonantie) die kan ontstaan als twee geluidsgolven met elkaar in contact komen waarbij de amplitudes versterkt worden als de geluidsgolven exact in fase zijn en uitdoven als ze uit fase zijn. Moiré patronen zijn in zoverre verschillend dat als twee lagen exact op elkaar liggen er geen patroon waarneembaar is. Het Moirépatroon ontstaat pas als de lijnen dicht naast elkaar liggen maar elkaar niet precies overlappen. Zo zijn ze ook ontdekt in de textiel industrie. Als je twee lagen fijne textiel op elkaar legt en ze samen perst krijg je nooit een exacte match en ontstaan de Moirépatronen. In het boek van Lauwerier kan men ook de mathematische benadering van de Moirépatronen vinden. 

De term moiré patroon komt van het Franse moiré, een soort zijde.

Minnaert heeft in zijn “Natuurkunde van het vrije veld” een Moirépatroon beschreven dat men door twee hekken kan waarnemen.

Van dit effect, een grote verandering in het moirépatroon, bij een heel kleine verschuiving, kan men gebruik maken om kleine bewegingen waar te nemen en te meten.

Literatuur:

  • 'Meten met Moire; Archimedes; 5 1973; p. 105-110.

  • C.L. Strong; 'Moire Patterns Provide Both Recreation and Some Analogues for Solving Problems'; Scientific American; November 1964; p. 134-142, 156.

  • Mark Gardner; 'How to get Moire from your computer'; Creative Computing; 10 2 1984; p.174.

  • Yasunori Nishijima, Gerald Oster; 'Moire Patterns: Their Application to Refractive Index and Refractive Index Gradient Measurements'; Journal of the Optical Society of America; 54 1 1964; p. 1-4.

  • Hans Lauwerier; “Computer Simulaties – De wereld als model”; Aramith; 1992; ISBN 9068341065; p. 31-39, 151, 152.

  • M. Minnaert; 'De natuurkunde van het vrije veld - 1 Licht en kleur in het landschap'; Thieme; 5de druk; 1974; ISBN 9003907803; p. 112-114.

Relevante websites:

Minder relevante websites:

Opmerkingen:

  • De python files zijn downloadbaar: MoireL1.py; MoireL2.py; MoireS1.py.
  • De visio file die ik gemaakt heb: Drawing1.vsd
  • In dit experiment heb ik voor Python gekozen als programmeertaal. Men kan natuurlijk ook voor een andere programmeertaal kiezen.
  • Voor het maken van deze grafieken mbv Python heeft men een graphics module nodig: graphics.py. Die men in dezelfde map als waarin het programma staat geplaatst wordt. Deze kan men downloaden van: http://mcsp.wartburg.edu/zelle/python/

Achtergrondinformatie:

De python code van enkele programma's:
 
# File:MoireL1.py
# Moire patterns
# Simulating interference between parrallel lines
# Two equidistant bundles
# Source: Lauwerier - Computer Simulatie

from graphics import * # custom graphics

#### Open a graphics window
win = GraphWin("Shapes", 500, 400)

#### define some constants
A = 0.3
B = 0.32

i = 0
for i in range(110):
X1 = 50
Y1 = 30+i/A
X2 = 400
Y2 = Y1
#### Draw a line segment using a Line object
line = Line(Point(X1,Y1), Point(X2,Y2))
line.draw(win)
i = i + 1

j = 0
for j in range(110):
X1 = 50
Y1 = 30+j/B
X2 = 400
Y2 = Y1
#### Draw a line segment using a Line object
line = Line(Point(X1,Y1), Point(X2,Y2))
line.draw(win)
j = j + 1

#### Wait for a signal before exiting
message = Text(Point (135, 10), "Click anywhere to quit")
message.draw(win)
win.getMouse()
 
# File:MoireL2.py
# Moire patterns
# Simulating interference between parrallel lines
# 2nd bundle slightly turned
# Source: Lauwerier - Computer Simulatie - p. 151

from graphics import * # custom graphics

import math # math module

#### Open a graphics window
win = GraphWin("Shapes", 450, 350)

#### define some constants
a = 0.02
c = math.cos(a)
s = math.sin(a)

i = 0

for i in range(75):

x1 = 10
y1 = 30+4*i
x2 = 400
y2 = y1
#### Draw a line segment using a Line object
line = Line(Point(x1,y1), Point(x2,y2))
line.draw(win)

u1 = c*x1 - s*y1
v1 = s*x1 + c*y1
u2 = c*x2 - s*y2
v2 = s*x2 + c*y2
#### Draw a line segment using a Line object
line = Line(Point(u1,v1), Point(u2,v2))
line.draw(win)

i = i + 1

#### Wait for a signal before exiting
message = Text(Point (135, 10), "Click anywhere to quit")
message.draw(win)
win.getMouse()
 
# File:MoireS1.py
# Moire patterns
# Simulating interference from beam bundles
# with pixel roster from screen
# Source: Lauwerier - Computer Simulatie - p. 152

from graphics import * # custom graphics
import math # math module

#### Open a graphics window similar
win = GraphWin("Shapes", 450, 400)

#### define some constants
a = 7
i = 0

for i in range(150):
x1 = 100
y1 = 50+2*i
x2 = 400
y2 = a + y1
#### Draw a line segment using a Line object
line = Line(Point(x1,y1), Point(x2,y2))
line.draw(win)

i = i + 1

#### Wait for a signal before exiting
message = Text(Point (135, 10), "Click anywhere to quit")
message.draw(win)
win.getMouse()


08/01/2017