Download or view MomTetrahedron.frink in plain text format
use geometry.frink
// Return a polygon object representing the specified equilateral triangle.
// THINK ABOUT: Would this be better as a GeneralPath of 4 disconnected
// polygons?
makeEquilateralTriangle[g is graphics, cx, cy, sideLength, rotation, label1="", label2="", label3="", center=""] :=
{
p = new polygon
halfL = 1/2 sideLength
h = halfL sqrt[3]
halfH = 1/2 h
rh = 2/3 h
thirdh = 1/3 h
x1 = cx
y1 = cy - rh
[x2, y2] = rotateAroundPoint[x1,y1,cx,cy,rotation]
p.addPoint[x2, y2]
x1 = cx - halfL
y1 = cy + thirdh
[x2, y2] = rotateAroundPoint[x1,y1,cx,cy,rotation]
p.addPoint[x2, y2]
x1 = cx + halfL
[x2, y2] = rotateAroundPoint[x1,y1,cx,cy,rotation]
p.addPoint[x2, y2]
g.add[p]
x1 = cx
y1 = .95 thirdh + cy
g.text[center, cx, cy, rotation]
//g.fillEllipseCenter[cx, cy, .01, .01]
[x2, y2] = rotateAroundPoint[x1,y1,cx,cy,rotation+0 degrees]
g.text[label1, x2, y2, "center", "bottom", rotation + 0 degrees]
[x2, y2] = rotateAroundPoint[x1,y1,cx,cy,rotation+120 degrees]
g.text[label2, x2, y2, "center", "bottom", rotation + 120 degrees]
[x2, y2] = rotateAroundPoint[x1,y1,cx,cy,rotation-120 degrees]
g.text[label3, x2, y2, "center", "bottom", rotation - 120 degrees]
}
// Draw the specified tetrahedron into the graphics object.
makeTetrahedron[g is graphics, cx, cy, sideLength] :=
{
hl = sideLength / 2
ho = hl sqrt[3]
makeEquilateralTriangle[g, cx, cy, sideLength, 0 deg, "Oratio - Prayer", "Meditatio - meditate", "Contemplatio - Contemplate", "Lectio Divinio"]
makeEquilateralTriangle[g, cx, cy + 2/3 ho, sideLength, 180 deg, "God the Father", "God the Son", "God the Holy Spirit"]
makeEquilateralTriangle[g, cx + hl, cy + ho, sideLength, 0 deg, "Tropological - Love", "Allegorical - Faith", "Anagogical - Hope"]
makeEquilateralTriangle[g, cx - hl, cy + ho, sideLength, 0 deg, "Inform", "Form - Consciences", "Transform (in Christ)", "Conformity"]
}
g = new graphics
g.font["SansSerif", "bold", .05]
makeTetrahedron[g, 0, 0, 1]
g.show[]
Download or view MomTetrahedron.frink in plain text format
This is a program written in the programming language Frink.
For more information, view the Frink
Documentation or see More Sample Frink Programs.
Alan Eliasen was born 20139 days, 6 hours, 9 minutes ago.