STUDI • MARIANO TOMATIS ANTONIONO

TORNA ALL'INDICE

Analysis of alignments in R-Environment - Alignments on a circle

A DETAILED GUIDE TO THE GEOMETRICAL STUDY OF SACRED GEOMETRIES AND ORTHOTENY • JULY 12, 2007

In order to evaluate the points aligned on a circle defined by a center (point 1) and a radius (the distance between point 1 and point 2) we need a new function returning the distance between two points (x1,y1) and (x2,y2):

distance <- function(x1,y1,x2,y2) sqrt((x1-x2)^2+(y1-y2)^2)

A second function will return TRUE or FALSE when called with a third point as a parameter when it is near the circle with a tolerance equal to E:

aligned <- function(x1,y1,x2,y2,x3,y3,e)
abs(distance(x1,y1,x2,y2)-distance(x1,y1,x3,y3))<e

In this function (x1,y1) is the center of the circle, the distance between (x1,y1) and (x2,y2) is the radius and (x3,y3) is the point to be tested.

It is easy to scan all the remaining points in order to find the ones "aligned" on the circle.

Let's verify if it is correct that Esperaza is the center of a circle passing through Coustaussa, Granès, Saint Ferriol and Les Sauzils, as stated by Henry Lincoln (quoted here).

Now you can select two key points you want to analyse, for example Esperaza (Id=35) and Coustaussa (Id=47).

You define the two points and the tolerance E (10 meters):

point1 <- 35
point2 <- 47
e <- 10

Then you start to draw the map and the two defining point:

plot(x,y,col="light gray")
points(x[point1],y[point1],pch=19,col="dark red")
points(x[point2],y[point2],pch=19,col="dark red")
text(x[point1],y[point1],name[point1],cex=0.7,pos=1)
text(x[point2],y[point2],name[point2],cex=0.7,pos=1)

By scanning all the 98 points, you can find the ones lying on the circle:

for(i in 1:length(x))
{
  if(i!=point1 & i!=point2)
  if(aligned(x[point1],y[point1],x[point2],y[point2],x[i],y[i],e))
  {
    points(x[i],y[i],pch=19,col="dark blue")
    text(x[i],y[i],name[i],cex=0.5,pos=1)
  }
}

As stated by Henry Lincoln, the alignment of Granès, Saint Ferriol and Les Sauzils on the circle is correct within a tolerance of 50 meters.

Please, download the complete R file from here: circle.txt

© 2017 Mariano Tomatis Antoniono