Waldman-Voderberg Deconstructed 9 September 2014 Voderberg Deconstructed & Triangle Substitution Tiling Cye H. Waldman [email protected] Copyright 2014 Abstract The Voderberg is one of an infinite number of tiles that can be created by deforming an isosceles triangle. Analytical expressions are derived for the segment lengths and internal angles of a generalized Voderberg tile. This generalized tile has all the familiar properties of the Voderberg tile, including spiral tiling and the ability of a pair of tiles to completely enclose a third tile or even a pair of tiles. These tiles can be readily tessellated in a radial pattern and in spiral patterns using Goldberg’s method. We present an algorithm for converting lengths and angles into coordinates in the complex plane and a general program with examples for triangle substitution tiling. The advent of deformable tiles has permitted the creation of interesting and unique animations. Introduction Wikipedia says it most succinctly, “The first spiral monohedral tiling was discovered by Heinz Voderberg in 1936, with the Voderberg tiling having a unit tile that is a nonconvex enneagon.” It is arguably the most popular and reproduced of all spiral tilings. We resisted Voderberg tiling for a long time for a couple of reasons. First of all, they are extremely common. Many have tried the tilings. Thus, our first concern was whether we had anything new to contribute. Then too, while many want to show the Voderberg spiral, very few actually discuss how to do it. We found two graphical methods and one iterative numerical solution. In this paper we discuss the equations for a generalized Voderberg tile that is parameterized in terms of a single angle; all segment lengths and internal angles can be expressed in terms of it. Then we demonstrate how to turn those lengths and angles into a tile in the complex plane. Next we address the question of creating radial and spiral tilings by the method of triangle substitution tiling. A brief look at other spiral tilings puts the present work in perspective. Finally, we present a complete Matlab program for triangle substitution tiling with several built-in tiles. This program can be readily modified by the user in order to modify or add tiles. Technical Discussion VODERBERG TILE Figure 1 shows a generic Voderberg tile and its related isosceles triangle with a 12º vertex. It is a bent enneagon and here we have adopted the notation of Dutch (1999). 1 Waldman-Voderberg Deconstructed 9 September 2014 Figure 1: A generic Voderberg tile. In order to assure tessellation, the following conditions must be met: (1) ABCDE is congruent with AIHGF, i.e., the latter being the former rotated through the vertex angle, (2) there are only three unique lengths, a, b, and c, and (3) the vertex angle must be 12º. We found the following descriptions of Voderberg tile development: Trott (2006) gives an iterative procedure for the specific case where a = b. This procedure is not only very limiting, but it is unnecessarily complicated. Meissser (2009, in German), shows a graphical method for constructing a Voderberg tile, but gives no information as to segment lengths and internal angles. Roskes (2008) does much the same thing, but goes much further in that she shows how to actually create radials and spirals, albeit graphically. Again, there is no specific calculation of the lengths and angles. Moreover, these graphical methods are somewhat random, such as, draw a line between here and there. In order to create tilings mathematically, we need precise definitions of the tiles in order to assure tessellation and reproducibility. After much gnashing of teeth and pulling of hair, and, yes, trigonometry and the law of sines, we determined that the entire solution to the Voderberg tile could be parameterized in terms of a single parameter, which we chose to be the large obtuse angle at D, hereafter referred to as , as well as the vertex angle at A, hereafter, , which is known. It was assumed here, without any loss of generality, that the base of the isosceles triangle is unity, i.e., a = 1. Table 1 and Eqs. (1) show the results of the analysis. The table shows the angle and segment lengths (counterclockwise) for each node in Figure 1. 2 Waldman-Voderberg Deconstructed 9 September 2014 Node Angle Length A 12 1 B 3 2 x C 2 L D x E 2 1 F 3 2 x G 2 L H x I 2 1 Table 1: Properties of the generic Voderberg tile. L 2sin cos 2 2 (1) x csc 2 L cos sin 2 2 We found that 111 153º will assure that the two legs do not cross each other. As a parity check, you can see that the sum of the internal angles is 7 , consistent with an enneagon. Moreover, we validated that for any such values of we can completely enclose one or two tiles with only two tiles. This is exemplified in the associated animation. Likewise, we showed that all these tiles will tessellate both radially and spirally, again as seen in the animations. In the following sections we will describe exactly how we generated these tessellations. But first we must develop a proper tile for use in the algorithms. 3 Waldman-Voderberg Deconstructed 9 September 2014 DEVELOPING TILES FOR THE COMPLEX PLANE The above solution for the Voderberg tile is not very useful for tiling in the complex plane. We need to transform it into a single complex vector that gives the coordinates of each node. Then we can readily translate and rotate the tile where we need it in the plane. The method we developed is based on the concept of fractal linkages, as given by Gazalé (1999). He begins with the concept of an old-fashioned surveyor’s chain composed of articulated links of unit length. If the links are laid out to conform to some shape, then each link can be thought of as a unit vector given by ei , where is the polar angle. Thus, the nodes of the chain, zn are given by n the cumulative sum e i k . This works quite nicely if you know the external angles of your tile, k 1 as you might if developing the tile on square or triangle graph paper, for example. More generally, the internal angles, n of the tile are known and the sides, sn may not be of unit length. n You can readily determine that the external angles are given by the cumulative sum n k . k 1 Variable lengths can accommodated by repeating the unit vectors, or more simply by multiplying the link vectors by the appropriate lengths. Thus, given S s1 , s2 , s3 ,... 1 , 2 ,3 ,... there follows n n k k 1 n zn sk eik k 1 The Matlab code is given simply by S=[s1;s2;s3;…]; THETA=[theta1;theta2;theta3;…]; PHI=cumsum(pi-THETA); z=cumsum(S.*exp(i*PHI)); z=[0;z]; % close the tile 4 Waldman-Voderberg Deconstructed 9 September 2014 TRIANGLE SUBSTITUTION TILING Triangle substitution tiling has been described by Gardner (2001), and in greater detail by Grünbaum and Shephard (1986). Both attribute the idea to Goldberg (1955), who pointed out that if we take a radial tiling of isosceles triangles and slice it in half, the two half-planes can be shifted by one or more tiles to make a spiral form. The general idea is shown in Figure 2. Moreover, the triangles can be distorted in infinite ways by replacing the legs with congruent lines, such as those in Figure 1. As Gardner pointed out, Voderberg created his spiral “in a complicated procedure. Goldberg’s method of obtaining it makes it almost trivial.” Figure 2: Creating spiral from radial tilings. We developed a simple and (almost) foolproof method for creating these tilings that we call V-A tiling. Here, V represents a tile standing on its head, while A is the tile resting on its base. Radial tiling can be constructed by corona or by sector. The latter is simpler and will be adopted here. Referring to Figure 3, we see that the core consists of a single V-tile for each sector. Within the sector, the first corona consists of three tiles, in the order V-A-V, the second corona has five tiles, V-A-V-A-V, and so on. In all cases, we assume that the base of the triangle (or its modification) is unity. Assuming that we start with the V-tile, the A-tile is usually given by A V ½ i h , where h is the height of the tile, i.e., h 1 2 tan 2 . Here, we have defined A such that it is tessellated with V. You can see that the nth corona consists of n A-tiles and n+1 V-tiles. Thus, for the nth corona, zn V A V A 1 V A 2 ... V A n 1 V+n n 12 i n h And this applies to substitution tiles, such as the Voderberg, as well. 5 (2) Waldman-Voderberg Deconstructed 9 September 2014 Figure 3: V-A tiling. To set up for spiral tiling, it is convenient to rotate the sector Z counterclockwise so that it rests on the negative x-axis. Assuming the origin is at the vertex of the sector, we can say Z Zei 2ei 2 (3) The spirals are then created quite simply as follows: Z spiral Ztop Zbot g x (4) where Z top and Zbot are the sectors in the top and bottom halves of the plane, respectively, g is the number of the Goldberg shift, and x is the leg length of the reference isosceles triangle, to wit x 1 2sin 2 (5) This is amazingly simple, but there are a few caveats that must be noted. First, the vertex angle of the reference triangles must be mod 360 and the number of sectors must be even. Second, while it’s true than any distorted triangle will tessellate radially, only those whose legs are antisymmetric with respect their centers, will spiral as advertised. When they are symmetric, special rules apply; these will be discussed in the next section. Let us just remark in passing that you could work with an odd number of sectors on an ad hoc basis. We’ve done stranger things, including vertex angles that were not mod 360. 6 Waldman-Voderberg Deconstructed 9 September 2014 SOME SAMPLE TILES Figure 4 shows the V-A configuration of the six tiles (in addition to the isosceles triangle) that are included with the enclosed program. It’s no coincidence that the first five of these tiles are the same as those in Grünbaum and Shephard (1986); it was merely expedient. We have, however, reimagined the top three tiles, i.e., (a,b,c) as deformable tiles that can be varied over a range of shapes. Tiles (d) and (e) are based on specific polygons and are fixed in shape. Tile (f) is a random icosihenagon (21-gon) that we developed for this program. It will be used as the basis for describing the process of creating new tiles below. Figure 4: Built-in tiles for the enclosed triangle substitution tiling program. The term deformable tiling was sugested by Grünbaum (2014) and is being adopted here. Table 2 shows the properties of these tiles. The ‘Name’ is simply the way we reference them, ‘Description’ is just that, and ‘Figure’ refers to its position in Figure 4. Now, the columns ‘Deformable or free parameter’ and ‘Range’ refer to those tiles that allow the user to create tessellations with variations of the same basic tile shape. However, only the Voderberg, Lightning, and Sigma tiles permit a continuous variation in the tile shapes that allow us to animate tilings. These parameters are used in the program input. 7 Waldman-Voderberg Deconstructed Name Description Triangle Isosceles triangle Voderberg Bent enneagon (a) , obtuse angle Lightning Bent heptagon (b) l 1.75 TRUE Sigma Bent enneagon (c) l, a length l, a length l ~ 0.72-2.65 FALSE Bent Wedge Tent Another enneagon Reflexed heptagon A random icosihenagon (d) NA FIXED FALSE (e) NA FIXED FALSE (f) , vertex angle mod 360 2 even TRUE (can be user-modified to FALSE) Random Figure 9 September 2014 Deformable or free parameter , vertex angle Range Asymmetry mod 360 TRUE 2 even 111 153 TRUE Table 2: Properties of the built-in tiles. The reason we differentiate between antisymmetric and symmetric tiles is that they tessellate differently, and this will impact the Godberg shift. In plain English, antisymmetric tiles tessellate with themselves and symmetric tiles tessellate with their mirror (conjugate) selves. The upshot of this is that in order to tessellate spirals of symmetric tiles, some modifications are required. Specifically, (1) the radial coronas must alternate between the specified tile and its conjugate and (2) for an even number Goldberg shift the procedure is the same as for antisymmetric tiles, as shown in Eq. (4), however, for an odd number shift, Zbot must be replaced * by Zbot , that is, the negative conjugate of the entire bottom half plane. To our knowledge, this property has not been noted previously in the literature. However, it is consistent with the double spiral Sigma tiling (Goldberg shift equal to 1) seen in Grünbaum and Shephard (1986) [p. 514, Fig. 9.5.4 (b)]. Before leaving triangle substitution tiling, we point out that the tiles need not be polygons, nor must the base of the triangle be flat. Figure 5 shows two tiles that we developed based on continuous Cornu spiral segments. Notice that all sides of the tile are antisymmetric. This precludes the possibility of radial tiling with alternate coronas of conjugate tiles. Finally, let’s not forget that all V-A tiles will tile periodically as well. 8 Waldman-Voderberg Deconstructed 9 September 2014 Figure 5: Triangle substitution tiling with curved tiles (Cornu spirals). 9 Waldman-Voderberg Deconstructed 9 September 2014 A RECIPE FOR CREATING NEW TILES In this section we’ll discuss a simple method for creating new tiles. As an example, we’ll develop the random icosihenagon shown above. First we’ll present the general steps involved and then the specific example. Thus, 1. Select a vertex angle, that is mod 360 and 2 is even (for an even number of sectors) 2. Calculate the height and leg length of the ‘parent’ isosceles triangle, say h and s 3. Create a random vertical line between z 0 and z i s 2 4. Concatenate this with its negative or conjugate; re-order the vector so that it’s bottom to top; set the bottom to z 0 (negative is antisymmetric, conjugate is symmetric) 5. Create the full tile by rotating this line by 2 ; once again concatenate and order the vector counterclockwise; eliminate any duplicate points from the concatenations 6. Create the V- and A-tiles; typically, A V ½ i h or A V* ½ i h for antisymmetric and symmetric tiles, respectively (the asterisk denotes conjugate, as usual) And here is the Matlab code for the random icosihenagon with a 15º vertex in an antisymmetric or symmetric form. Notice that here, as throughout the enclosed code, we use the Hebrew alphabet for and . This is simply to avoid confusion with built-in Matlab functions of the same name, as can occur occasionally. antisym=1; alef=15*pi/180; h=1/(2*tan(alef/2)); s=1/(2*sin(alef/2)); % let's make a 5-legged line, y=linspace(0,s/2,6)'; x=s/3*(-.5+1*rand(4,1)); % get the correct endpoints x=[0;x;0]; z1=complex(x,y); if antisym z=[flipud(-z1);z1(2:end)]; else z=[flipud(conj(z1));z1(2:end)]; % for symmetric case end z=z-z(1); % make the tile z=[z*exp(-i*alef/2);flipud(z*exp(i*alef/2))]; V=z; if antisym A=-V+1/2+i*h; else A=conj(V)+1/2+i*h; % for symmetric case end By the way, this code snippet is not bullet proof. You will encounter cases where the two legs of the tile cross each other. The culprit is in the definition of x; this can be remedied with a more conservative (smaller) value, but at the cost of losing really good zig-zag tiles. Your choice. 10 Waldman-Voderberg Deconstructed 9 September 2014 ABOUT THE PROGRAM A complete Matlab program, TriangleSubstitutionTiling4NCB.m is available in the Appendix. The input and output variables are described here. All calculations are carried out in function RadialSpiralTiling4NCB by the radial sector method described above. The program plots the results of the specified tiling. It can be easily modified to alter or add to the built-in tiles. The program is run from the command line as follows: Z=TriangleSubstitutionTiling4NCB(tile,param,coronas,shift); The output, Z is a complex matrix of tiles. The columns are the tiles and the rows are their complex coordinates. The input parameters are described in Table 3. Parameter Description tile Built-in tiles: ‘triangle’, ‘Voderberg’ ‘lightning’ ‘sigma’,‘bentwedge’ ‘tent’, ‘random’ This is the parameter for the deformable tiles and the vertex angle for the triangle and random tiles The number of annuli about the central core tiles A string parameter; case insensitive The number of tiles to shift in order to create spirals by Goldberg’s method This number may be positive or negative; normally |shift| ≤ coronas param coronas shift Remarks Refer to Table 2 All angles are input in degrees For fixed tiles use anything Refer to Table 2 Refer to Table 2 Table 3: Program input parameters. For example, the following code will produce the classic Voderberg spiral in 0.15 seconds: tile='voderberg'; param=132; coronas=3; shift=1; Z=TriangleSubstitutionTiling4NCB(tile,param,coronas,shift); 11 Waldman-Voderberg Deconstructed 9 September 2014 MORE FUN WITH SPIRALS There are many aspects to spiral tiling, so you have to wonder why it is that every time you go looking for them you find the same old thing. Here’s another example of triangle substitution tiling. This this one is composed of triangles… Sierpinski triangles. Figure 6 shows a simple spiral. Actually, many fractals lend them themselves to various types of tiling. Figure 6: Sierpinski triangle applied to spiral. The most difficult of all the spirals are the ad hoc cases for which this are no guielines. The fun, in spite of the frustration, is bringing order out of chaos. Such was the case in the development of the spiral shown in Figure 7. Here, we created a tile composed of two Sigma tiles, concatenated at the base in the antisymmetric configuration. However, this is not a triangle substitution tile. Can you see why? This original tiling was somewhat difficult, but it is a unique, deformable tile (see the associated animation), and it was worth the effort. 12 Waldman-Voderberg Deconstructed 9 September 2014 Figure 7: The double-Sigma double spiral. This double-Sigma will tile radially, and subsequent efforts led to something akin to the Goldberg shift. Ultimately, we were able to create spirals with half and full integer shifts. In the final analysis, it was a lot simpler than triangle substitution tiling. The same algorithms can reproduce the double-Lightning and Lord & Wilson tilings in Grünbaum and Shephard (1986), p. 516, and for spirals of any order. This may lead to a new tiling paradigm: rhombus substitution tiling. From this perspective, the double-Sigma tiling doesn’t seem as special as originally thought. Order from chaos. Then there are the faux spirals, opticals illusions with a trompe l’œil effect. Figure 8 shows two examples. The top is our variation of the well-known “Fraser spiral” and that on the bottom is the double-Sigma tile shown above. In fact, these are purely logarithmic radial tilings. 13 Waldman-Voderberg Deconstructed 9 September 2014 Figure 8: Trompe l’œil spirals. 14 Waldman-Voderberg Deconstructed 9 September 2014 Now, any tile that can cover the plane periodically can be expressed as an aperiodic logarithmic radial tiling as in Figure 8. An almost identical algorithm allows the creation of logarithmic spiral tilings. Figure 9 shows an example using the twinkle tile; see Gazalé (1999) for that one. This is a great tile; it’s a rep-tile whose gnomon is an equilateral triangle. Figure 9: A logarithmic spiral of twinkle triangles tiles. The Bent Wedge is also known to tile in one- and three-armed spirals [Grünbaum and Shephard (1986), pp. 22 and 514]. But it is also a member of a class of versatiles [see, for example, Grünbaum and Shephard (1979) and Gailiunas (2000)]. Any of these tiles can be applied to triangle substitution tiling. Our observation is that these tiles all behave identically in tiling; the same program can tile any of them with specification of a single parameter. Figure 10 shows a three-armed spiral of a tridecagon versatile. The Tent is also known to tile in a one-armed spiral [Grünbaum and Shephard (1986), p. 515]. Similarly, the Tent tile is a member of a set of reflexed (odd) polygons that all tile similarly. Figure 11 shows a one-armed spiral for a reflexed tridecagon. The point to be made about these families of tiles is that the code that produced these figures could produce similar ones for any and all of the set members, and to any number of turns. Thus, the algorithms could truly cover the plane if you had the computer resources to do it. 15 Waldman-Voderberg Deconstructed 9 September 2014 Figure 10: Three-armed spiral of a tridecagon versatile. Figure 11: One-armed spiral of a relfexed tridecagon. 16 Waldman-Voderberg Deconstructed 9 September 2014 In 2000, Paul Gailiunas developed a new system of spirals based on regular polygons. These spirals are noteworthy on several counts. In the first place, they all spiral out from a common center point; second, the spirals zig-zag as they wind out; and third, perhaps most significant, is that you can create a spiral of any number of arms ≥3. To put this in perspective, you may recall from Grünbaum and Shephard (1986), that “…at present, we know of no prototile which admits a monohedral r-armed spiral tiling for any odd value of r 5 .” With Paul’s tiles, this is now possible. We observed from Paul’s figures that all these radial tilings obeyed exactly the same set of rules and we constructed a simple program that can create any or all of them to any number of coronas. Figure 12 shows a few examples. (These are Paul’s spirals; we just programmed here.) 6 3 18 5 Figure 12: Some example of spirals with Paul Gailiunas’s tiles. 17 Waldman-Voderberg Deconstructed 9 September 2014 Summary We have developed the equations for a generalized Voderberg tile and shown that this deformable tile satisfies all the requirements of Voderberg’s original tile. We demonstrated how to describe tiles in the complex plane, develop new tiles for radial and spiral tiling, and build such tilings with triangle substitution tiling and the Goldberg shift. A complete program for radial and spiral tiling with the Voderberg and several other tiles is included. We concluded with a pastiche of other spiral in order to encourage further efforts in the field. Earlier we mentioned the idea of bringing order out of chaos in tiling. In the present effort we have sought to develop a model for any triangle substitution tiling. In all of our work, we seek the mathematical framework to simplify the process to where we can think beyond the mechanics to the creative. Along the way, we come to better understand the underlying principles and the ability to handle the ad hoc cases with aplomb. Sometimes. Understanding V-A tiling has shown us how these tiles behave similarly; it is what allowed us to easily create the faux Voderberg triple spiral seen in the animations. It also suggests that we can mix-and-match tiles in spiral tiling or in radial coronas. Figure 13 shows some possibilities to explore. Each colored zone is composed of different tiles of the same vertex angle, in this case, two Voderberg tiles and a versatile hendecagon. The options increase with the number of shifts. This works absolutely because the different tiles only touch at the base. Figure 13: Mix-and-match tiling possibilities. It seems to us that there are still a lot of unexplored possibilities for spiral tilings. 18 Waldman-Voderberg Deconstructed 9 September 2014 Appendix: Triangle Substitution Tiling Program function Z=TriangleSubstitutionTiling4NCB(tile,param,coronas,shift) % this program was created for the National Curve Bank to accompany the % submission "Voderberg Deconstructed and Triangle Substitution Tiling," % see http://curvebank.calstatela.edu/waldman9/waldman9.htm for details %-------------------------------------------% HERE IS A SHORT PROGRAM FOR RANDOM TESTING % function TestTriangleSubstitutionTiling4NCB % % title says it all % close all % mod360=[12 15 18 30 36 45 60]'; % tiles={'triangle','Voderberg','LiGhTnInG','SIGMA','BentWedge','TEnT','rAnDOm'}; % % for k=1:length(tiles) % params=[mod360(floor(1+7*rand)),111+(153-111)*rand,1.75*rand,... % 0.72+(2.65-0.72)*rand,1,1,mod360(floor(1+3*rand))]; % coronas=floor(1+6*rand); % shift=-3+floor(6*rand); % TriangleSubstitutionTiling4NCB(tiles{k},params(k),coronas,shift); % title([tiles{k} ': (P,C,S) = (' num2str(params(k)) ','... % num2str(coronas) ',' num2str(shift) ')']) % end % return %-------------------------------------------% Copyright 2014, Cye H. Waldman % Let me know how this works out for you at [email protected] tile=lower(tile); switch tile case 'triangle' alef=param*pi/180; x=1; h=1/(2*sin(alef/2)); S=[x;h;h]; phi=[0;pi/2+alef/2;3*pi/2-alef/2]; z=cumsum(S.*exp(i*phi)); z=[0;z]; V=conj(z)-1/2+i*max(abs(imag(z))); A=z; sectors=2*pi/alef; if mod(sectors,2)>0 error('Need an even integer number of sectors for spirals') end antisym=1; case 'voderberg' alef=12*pi/180; b=param; beth=b*pi/180; L=2*sin((pi-alef)/2)/cos(beth-pi/2); x=(csc(alef/2)/2-L*cos(pi-beth))/2-sin(alef/2); S=[1;x;L;x;1;x;L;x;1]; theta=[alef;(3*pi-alef)/2;(2*pi-beth);beth;(pi+alef)/2; (pi-3*alef)/2;(2*pi-beth);beth;(pi+alef)/2]; 19 Waldman-Voderberg Deconstructed 9 September 2014 phi=cumsum(pi-theta); z1=cumsum(S.*exp(i*phi)); z1=[0;z1]; z3=-z1+1/2+i*max(imag(z1)); V=z1; A=z3; sectors=2*pi/alef; antisym=1; case 'lightning' alef=pi/12; sectors=2*pi/alef; % h=1/(2*tan(alef/2)); s=1/(2*sin(alef/2)); l=param; theta=pi/3; z=l*exp(i*theta); z=[0;z]; z=[z;z-z(2)+i*s]; z=[z;flipud(z*exp(i*alef))]; V=z*exp(-i*alef/2); A=(-z+i*s)*exp(-i*alef/2); antisym=1; case 'sigma' alef=pi/12; sectors=2*pi/alef; s=1/(2*sin(alef/2)); lratio=param; f=@(x) cos(x)./cos(pi/2+x)+lratio; theta=fzero(f,.5); phi=acos(-cos(theta)/2); l1=s/2*sin(phi-pi/2)/sin(pi-phi+theta); l2=2*l1; z=[0;l1*exp(i*theta);l1*exp(i*theta)+l2*exp(i*phi)]; z=[z;flipud(conj(z(1:end-1))+i*s)]; z=z*exp(-i*alef/2); z=[z;flipud(z*exp(i*alef))]; V=z; A=conj(z)+i*s*exp(-i*alef/2); V=-conj(V); A=-conj(A)+1; antisym=0; case 'bentwedge' alef=pi/12; theta=[7;11;11;11;1;13;13;13;4]*alef; phi=cumsum(pi-theta); % 12 is 180 deg when d=12 z1=cumsum(exp(i*phi)); z1=[0;z1]; z0=z1(5); z1=z1-z0; V=conj(z1); A=z1+1/2+i*max(abs(imag(z1))); sectors=24; antisym=0; 20 Waldman-Voderberg Deconstructed 9 September 2014 case 'tent' d=14; alef=2*pi/d; theta=[7;5;5;5;1;9;9]*alef; phi=cumsum(pi-theta); z=cumsum(exp(i*phi)); z=[0;z]; V=conj(z)-1/2+i*max(abs(imag(z))); A=z; sectors=14; antisym=0; case 'random' antisym=1; a=param; alef=a*pi/180; h=1/(2*tan(alef/2)); s=1/(2*sin(alef/2)); % let's make a 5-legged line, y=linspace(0,s/2,6)'; x=s/3*(-.5+1*rand(4,1)); % get the correct endpoints x=[0;x;0]; z1=complex(x,y); if antisym z=[flipud(-z1);z1(2:end)]; else z=[flipud(conj(z1));z1(2:end)]; % for symmteric case end z=z-z(1); % make the tile z=[z*exp(-i*alef/2);flipud(z*exp(i*alef/2))]; V=z; if antisym A=-V+1/2+i*h; else A=conj(V)+1/2+i*h; % for symmteric case end sectors=2*pi/alef; if mod(sectors,2)>0 error('Need an even integer number of sectors for spirals') end otherwise error('Please select from the available tiles') end Z=RadialSpiralTiling(V,A,sectors,coronas,shift,antisym); figure;plot(Z,'b');axis equal;axis off;set(gcf,'Color','w') v=axis;axis(1.01*v) return 21 Waldman-Voderberg Deconstructed 9 September 2014 function Z=RadialSpiralTiling(V,A,sectors,coronas,shift,antisym) % this function produces a normal radial tiling of unit equilateral % triangle V, with origin at the center, in sectors and coronas % Copyright 2014, Cye H. Waldman % setup alef=2*pi/sectors; fin=V; duo=[V A]; dely=1/(2*tan(alef/2)); % the V-A pair % corona height z=V; for r=1:coronas this=[]; % calculate the rows for k=1:r this=[this duo-r/2+k-1+i*r*dely]; end last=fin+r/2+i*r*dely; next=[this last]; if ~antisym && mod(r,2)==1; next=-conj(next); end z=[z next]; end % rotate to lie on negative x-axis z=z*exp(i*pi/2)*exp(-i*pi/sectors); % if shift<=coronas Z=z; for k=1:sectors-1 Z=[Z z*exp(-i*k*alef)]; end % and finally the spiral if shift~=0 if abs(shift)>0 Ztop=Z(:,1:end/2); Zbot=Z(:,end/2+1:end); if ~antisym && mod(shift,2)>0; Zbot=-conj(Zbot); end delx=1/(2*sin(alef/2)); Z=[Ztop Zbot+shift*delx]; end return Please notify us at [email protected] if there are any problems. And, by all means, let us know of any new tiles or tilings you develop for the program. 22 Waldman-Voderberg Deconstructed 9 September 2014 References Gardner, M. (2001). The Colossal Book of Mathematics, Norton. (The chapter including triangle substitution tiling originally appeared in a 1977 Scientific American column.) Gailiunas, P. (2000). “Spiral Tilings” Bridges 2000 Conference Proceedings, pp.133-140. Also available at http://archive.bridgesmathart.org/2000/bridges2000-133.pdf. Gazalé, M.J. (1999). Gnomon: From Pharaohs to Fractals, Princeton. I was very excited to discover this book and have learned a lot from it; highly recommended. Goldberg, M. (1955). “Central Tessellations,” Scripta Mathematica, 21, pp 253-260. Grünbaum, B. (2014) . Private communication. Grünbaum, B. and Shephard G.C. (1979) “Spiral Tilings and Versatiles,” Mathematics Teaching, No.88, Sept.1979, pp.50-1. Grünbaum, B. and Shephard, G.C. (1986). Tilings and Patterns, Freeman. This book is a musthave for anyone who is even moderately interested in tiling. At almost 20 years old, it is still the bible of tiling. Get the complete hardback edition, not the paperback ‘Introduction’ edition. Dutch, S. (1999). “Some Special Radial and Spiral Tilings,” http://www.uwgb.edu/dutchs/symmetry/radspir1.htm. Dutch’s extensive Web site has many interesting radial, spiral, and logarithmic spiral tilings; explore the many links therein. Meisser, K. (2009). https://app.box.com/shared/5p80jtlmaf. Roskes , B. and Choate, J. (2009). Advanced Spiral Tiling: Hirschhorn, Bent Wedge, and Voderberg Tiles in Google SketchUp 7, (GeomeTricks Aperiodic Patterns, Book 2), 3DVinci. See the complete set of GeomeTricks printed and e-books at http://www.3dvinci.net/ccp0-catshow/GM.html. These books are highly recommended, even if you don’t use the SketchUp program, for the wealth of ideas on and examples of tiling within them. Nicely organized and profusely illustrated with step-by-step instructions. Trott, M. (2005). The Mathematica GuideBook for Numerics, Springer. Wikipedia, “Tessellation,” http://en.wikipedia.org/wiki/Tessellation. 23
© Copyright 2026 Paperzz