4.3 Doric Temples
We have seen that the Greeks created an elaborate proportion system for columns, later described by Vitruvius. These columns were used to form porticos, wherein a succession of columns supporting a roof served as entrance of buildings, particularly temples. When a row of columns was projected from the building, it was called a prostyle, being classified according to the number of columns in its composition as distyle (two columns), tristyle (three columns), tetrastyle (four columns), pentastyle (five columns), hexastyle (six columns), etc. When the prostyle was extended to the whole building, by placing columns all around it, it was called a peristyle.
To implement Doric temples we will consider the placement of columns distributed linearly in a particular direction, as sketched in this figure.
Temple’s floor plan with an arbitrary orientation.
Given the orientation and separation vector \(\vec{v}\) of the columns, from the position \(P\) of a column, we will determine the position of the next column through \(P+\vec{v}\). This reasoning allows us to define a function that creates a row of columns. This function will have as parameters the coordinates \(P\) of the base of the first column, the height \(h\) of the columns, the vector \(\vec{v}\) separating the axes of the columns, and also the number \(n\) of columns that we wish to create. The reasoning behind the definition of this function is, once more, recursive:
If the number of columns to create is zero, there is nothing to be done;
Otherwise, we place a column at the point \(P\) and recursively create the remaining columns at the point that results from adding the vector \(\vec{v}\) to the point \(P\).
Translating this process to Julia, we have:
doric_columns(p, h, v, n) =
if n == 0
nothing
else
doric_column(p, h)
doric_columns(p+v, h, v, n-1)
end
We can test the creation of columns by using, for example:
doric_columns(xy(0, 0), 10, vxy(5, 0), 8)
The result is presented in this figure.
A perspective of a row of eight Doric columns with \(10\) units of height and \(5\) units of spacing.
4.3.1 Exercises 24
4.3.1.1 Question 71
Although the use of separation vectors between columns is relatively simple, we can redefine that process by calculating the vector from the start and end points of the row of columns. Using the doric_columns function, define a function called doric_columns_between that, given the center points \(P\) and \(Q\) of the first and final columns, the height \(h\) of the columns and finally the number of columns, creates a row of columns between those two points.
As an example, the image below shows the result of evaluating the following expressions:
doric_columns_between(pol(10, 0.0), pol(50, 0.0), 8, 6)
doric_columns_between(pol(10, 0.4), pol(50, 0.4), 8, 6)
doric_columns_between(pol(10, 0.8), pol(50, 0.8), 8, 6)
doric_columns_between(pol(10, 1.2), pol(50, 1.2), 8, 6)
doric_columns_between(pol(10, 1.6), pol(50, 1.6), 8, 6)
As we now know how to create rows of columns, it becomes easy to create the four necessary rows needed for a peristyle temple. Normally, the description of these temples is done in terms of the number of columns at the front and at the side facades, assuming that the columns at the corners count for both rows. This means that a temple with \(6 \times 12\) columns contains \(4 \times 2 + 10 \times 2 + 4 = 32\) columns. For creating the peristyle temple, besides the number of columns at the front and side facades, we need to know the separation vectors in both front and side facades and, obviously, the column’s height.
We will start by defining a function that creates half of the peristyle temple (containing one front facade and one side facade):
doric_peristyle_half(p, height, v0, n0, v1, n1) =
begin
doric_columns(p, height, v0, n0)
doric_columns(p+v1, height, v1, n1-1)
end
Note that, in order to avoid repeating columns, the second row must start at its second column and, therefore, one less column must be placed. To build the complete peristyle temple, we only have to create one half and then build the other half with one less column on each side, progressing in opposite directions:
doric_peristyle(p, height, v0, n0, v1, n1) =
begin
doric_peristyle_half(p, height, v0, n0, v1, n1)
doric_peristyle_half(p+v0*(n0-1)+v1*(n1-1),
height,
v0*-1,
n0-1,
v1*-1,
n1-1)
end
An example of a Doric peristyle is the Segesta temple, previously presented this figure. This temple is composed of \(6\) columns at the front and \(14\) columns at the side, in a total of \(36\) columns with \(9\) meters high. The distance between the columns axes is approximately \(4.8\) meters at the front and \(4.6\) meters at the side. The expression that creates the peristyle of this temple is then:
doric_peristyle(xy(0, 0), 9, vxy(4.8, 0), 6, vxy(0, 4.6), 14)
The result of evaluating the above expression is shown in this figure.
A perspective of the peristyle of the Segesta temple. The peristyle has \(6\) columns at the front and \(14\) columns at the side, each with \(9\) meters high. The distance between columns is \(4.8\) meters at the front and \(4.6\) meters at the side.
Although Greek temples were mostly rectangular, there were also circular temples, called tholos. The Tholos of Delphi at the Temple of Athena Pronaia presents a good example of such buildings. Although little remains of this temple, as shown in this figure, it is not difficult to imagine its original shape.
The Tholos of Delphi at the Temple of Athena Pronaia, built in 4th century BC. Photograph by Michelle Kelley.
To simplify the construction of a tholos temple, we will divide it into two parts, one creating the base, and another positioning the columns.
For the base, we can consider a set of stacked cylinders to form the circular steps, as shown in this figure. Thus, the base will be composed of \(n\) steps of height \(\Delta h_b\), with a base radius \(r_b\) shrinking \(\Delta r_b\) at each step.
A tholos base section. The base is composed by a sequence of stacked cylinders whose base radius \(r_b\) shrinks \(\Delta r_b\) at each step, and whose height grows in increments of \(\Delta h_b\) at each step.
To draw the bottom cylinder we have to consider its radius and the d_height. To draw the remaining cylinders, we have also to consider the radius decrement d_radius. These steps will be built using a recursive process:
If the number of steps to create is zero, nothing needs to be done;
Otherwise, we place a step (modeled with a cylinder) with the given radius and height and, recursively, we place the remaining steps on its top.
This process is implemented by the following function:
tholos_base(p, n_steps, r_base, dh_base, dr_base) =
if n_steps == 0
nothing
else
cylinder(p, r_base, dh_base)
tholos_base(p+vxyz(0, 0, dh_base),
n_steps-1,
r_base-dr_base,
dh_base,
dr_base)
end
For the positioning of the columns we will also consider a process that, at each step, only places one column at a given position and, recursively, places the remaining columns.
Given its circular structure, the construction of this type of building is simplified by the use of polar coordinates. In fact, we can elaborate a recursive process that, given the peristyle radius \(r_p\) and the initial angle \(\phi\), places a column in that position. Thereafter, it places the remaining columns using the same radius but incrementing \(\phi\) with \(\Delta\phi\), as shown in this figure.
Scheme of the construction of a tholos: \(r_b\) is the base radius, \(r_p\) is the peristyle radius (distance from the center of the columns to the center of the base), \(h_p\) is the peristyle height, \(\phi\) is the initial angle of the columns, and \(\Delta\phi\) is the angle between them.
The angular increment \(\Delta\phi\) is obtained by dividing the circumference by the number \(n\) of columns to place, i.e., \(\Delta\phi=\frac{2\pi}{n}\). The function definition is thus:
tholos_columns(p, n_columns, r_peristyle, phi, dphi, h_peristyle) =
if n_columns == 0
nothing
else
doric_column(p+vpol(r_peristyle, phi), h_peristyle)
tholos_columns(p, n_columns-1, r_peristyle, phi+dphi, dphi, h_peristyle)
end
Finally we define the function tholos that, given the necessary parameters to the two previous functions, invokes them sequentially:
tholos(p, n_steps, rb, dhb, drb, n_columns, rp, hp) =
begin
tholos_base(p, n_steps, rb, dhb, drb)
tholos_columns(p+vxyz(0, 0, n_steps*dhb),
n_columns,
rp,
0,
2*pi/n_columns,
hp)
end
This figure shows the model generated by the evaluation the following expression:
tholos(xyz(0, 0, 0), 3, 7.9, 0.2, 0.2, 20, 7, 4)
A perspective of the Tholos of Delphi, comprising \(20\) Doric columns with a height of \(4\) meters each, placed within a circle with a radius of \(7\) meters.
4.3.2 Exercises 25
4.3.2.1 Question 72
Consider the construction of a tower made of several modules, in which each module has exactly the same characteristics of a tholos, as presented in the figure below:
The top of the tower has a similar shape to the tholos base, although with more steps.
Define the function tholos_tower that, from the center of the tower’s base, the number of modules, the number of steps at the top of the tower, and the remaining necessary parameters to define a module similar to a tholos, builds a tower like the one presented in the previous image, on the left. Test the function by creating a tower with: \(6\) modules, \(10\) steps at the top, \(3\) steps per module, each step with a height and depth of \(0.2\), a base radius of \(7.9\), \(20\) columns per module, a peristyle radius of \(7\) and columns with a height of \(4\) meters.
Based on the previous answer, redefine the tower’s construction so that the radial dimension decreases with the height, as is visible on the center of the previous image.
Based on the previous answer, redefine the tower’s construction so that the number of columns decreases with height, as presented on the right of the previous image.
4.3.2.2 Question 73
Consider the creation of a city, composed by cylinders of progressively smaller sizes that are joined together by spheres, as shown in the following stereoscopic image: In order to see the stereoscopic image, focus your attention on the middle of the two images and cross your eyes, as if you were to focus on a very close object. You will notice that the two images become four, although slightly blurry. Then try to uncross the eyes in order to see only three images, i.e., until the two central images are overlapped. Concentrate on that overlap and let your eyes relax until the image is focused.
Define a function that, starting from the city center and the central cylinders radius, creates a city similar to the presented one.