![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Hi Mark,
here is "The Making of '#macro Trefoil'"; names starting with an
uppercase letter refer to variables in the code of my last post.
(don't underestimate the importance of the first two of the following
points!)
1. Find out the given and wanted elements (lengths, angles, ...)
and choose descriptive names for them
You asked for inscribing circles into an equilateral triangle, so all
of its angles are 60 degrees. The length of its sides is given; this
length got the name 'Side'. Obviously the triangle is to be erected
over a horizontal line, so it has a top corner ('Corner1'), a bottom
left corner ('Corner2') and a bottom right corner ('Corner3').
Because the problem has an infinite number of solutions, I decided
to use the radius 'Radius' of the circles as independent variable
and to calculate their midpoints 'Center1', ... , 'Center3'.
2. Choose a coordinate system
Usually the math is easier when many coordinates are 0 or 1: multiplying
by 1 is trivial, by 0 even more; adding of 0 is trivial; squaring 0 or 1
is the same as doing nothing; and so on.
If there is a mirror symmetry with respect to a line/point, then very often
(but not always) this line/point is well suited as coordinate axis/origin.
Sometimes it is easier to solve a standard problem and then transform
it to the required proportions; for example (in POV style): instead
of sphere{C,R ... } use sphere{0,1 ... scale R translate C}.
The trefoil is a problem in plane geometry, so I only use x- and y-
coordinates and set all z=0 (I will leave them out here, but had written
these zeros in the code).
Because circles are to be put into the *corners* of the outer triangle,
I decided to use a corner (Corner2) as origin, so
Corner2=<0,0>
Corner3 sits on the x-axis, so
Corner3=<Side,0>.
3. Make a drawing of the geometric situation
In most cases, an approximate scetch without large obvious errors will
suffice. Use thick lines for every known element. Don't believe everything
you see! The drawing can't prove anything, its sole purpose is to trigger
the intuition and to keep track of the known and the not-yet-known
elements. Do this even for very simple situations.
(Please do this *now* to make it easy to follow the following explanations!)
4. Look for properties that allow application of geometric theorems
Very often symmetries, right angles, congruent triangles and parallels
are the key for a solution. If you have none, create them by erecting
perpendiculars, drawing parallels etc.
This is the inspiration part of the solution of geometric problems.
5. Find out relevant elements (coordinates, lengths, angles, ...) until all
wanted elements are known
This is the transpiration part of the solution of geometric problems.
[ top corner ]
The first step in the trefoil problem is to find the top corner. Due to
the triangle's mirror symmetry with respect to the perpendicular from
the top corner,
Corner1.x=Side/2.
The y-coordinate is the Height of the triangle, found by the law of
pythagoras in the right-angled triangle
top point -- bottom left point -- midpoint of base line
so we get
Height^2 + (Side/2)^2 = Side^2
Solving for Height gives
Height = sqrt( Side^2 + Side^2/4 ) = sqrt(3)/2*Side
[ centers ]
Now look at the midpoint 'Center2' of a circle touching the sides
emanating from Corner2. Due to symmetry of this circle and the triangle
with respect to the line through Corner2 and Center2, the angle between
this line and the x-axis is 30 degrees (60/2). Now imagine a new point:
the mirror image 'M' of Center1 with respect to the x-axis. The triangle
Corner2 -- Center1 -- M
has 30+30 degrees at Corner1 (x-axis symmetry), its other two angles are
equal (same symmetry). So all angles are 60 degrees, i.e. this triangle
is equilateral. The vertical side obviously has a length=2*Radius, and
because of the equilaterality, the other sides have the same length. The
part of the x-axis within this triangle is a height of this triangle, and
as seen above with the outer triangle, height=sqrt(3)/2*length_of_side.
But this height of the small triangle is the x-coordinate of Center2!
So we have
Center2.x = sqrt(3)/2 * 2*Radius = sqrt(3)*Radius
and obviously
Center2.y = Radius
By symmetry with respect to the perpendicular from the top corner onto
the x-axis:
Center3.x = Side - sqrt(3)*Radius
Center3.y = Radius
As seen above,
distance between Center2 and Corner2
= length_of_side of the small triangle
= 2*Radius
Because the three circles are equal,
distance between Center1 and Corner1 = 2*Radius
I.e. Center1 is 2*Radius below Corner1, so we get
Center1 = <Side/2, Height-2*Radius>
[ maximal Radius, minimal Radius ]
Because all triangles should lie completely inside the outer triangle,
the maximal Radius is the radius of the incircle. Then (symmetry!)
center2_for_max_Radius.x = Side/2
Above we found
Center2.x = sqrt(3)*Radius
For the maximal circle we get
center2_for_max_Radius.x = sqrt(3)*max_radius
So
Side/2 = sqrt(3)*max_radius
i.e.
max_Radius = Side/2/sqrt(3) = Side * sqrt(3)/6
The minimal Radius obviously is zero, so all values in the range
0 .. Side*sqrt(3)/6
are possible radii.
[ Radius of mutually touching circles ]
The circles are touching when the distance of their centers = 2*Radius.
The situation is easily analyzed by looking at Center2 and Center3:
Center3.x - Center2.x = 2*touch_Radius [y-coordinates are equal!]
The coordinates of these centers are known:
Side-sqrt(3)*touch_Radius - sqrt(3)*touch_Radius = 2*touch_Radius
A little calculation solves this for touch_Radius:
Side = (2*sqrt(3)-2) * touch_Radius
touch_Radius = Side / (2*sqrt(3)-2) [now expand by (2*sqrt(3)+2):]
= Side * (sqrt(3)-1)/4
[ center of triangle ]
This point isn't needed for the problem, but I suggest to calculate
almost everything you can: it often gives deeper insight in the
problem, reveals unexpected relations and simplifies other steps.
In the trefoil problem, it helps finding the "true gothic" Radius.
Again because of symmetry,
Center.x = Side/2
The bisectors of a triangle (which in this case also are angular
bisectors and heights) intersect in its center of gravity and
are divided by this point in a 2:1 ratio. This gives us
Center.y = Height/3
[ "true gothic" Radius ]
In a "true gothic" situation, all circles meet at the Center, so
their distance from this Center = Radius. In this case, the situation
at the top is most easy:
gothic_Center1.y - Center.y = gothic_Radius [x-coordinates are equal!]
Because
Center1.y = Height-2*Radius
we have the special case
gothic_Center1.y = Height-2*gothic_Radius = sqrt(3)/2*Side-2*gothic_Radius
We already found in the previous section
Center.y = Height/3 = sqrt(3)/6*Side
Putting all this together and solving for gothic_Radius, we find
sqrt(3)/2*Side-2*gothic_Radius - sqrt(3)/6*Side = gothic_Radius
sqrt(3)/3*Side = 3*gothic_Radius
gothic_Radius = sqrt(3)/9*Side
6. During the paragraph 5 implement everything at once in POV-Ray
This will reveal calculation errors and gives an exact drawing of the
situation reached so far. And it's fun!
.....
I don't know your mathematical background, so maybe this was a little bit
lengthy, but I hope this explanation will contribute to your ability to
successfully attack similar (and more complex) problems.
Sputnik
--
----------------------------
fr### [at] computermuseum fh-kiel de
----------------------------
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
INVALID_ADDRESS wrote:
>I don't know your mathematical background, so maybe this was a little bit
>lengthy, but I hope this explanation will contribute to your ability to
>successfully attack similar (and more complex) problems.
>
> Sputnik
>
>
>--
>----------------------------
>fr### [at] computermuseum fh-kiel de
>----------------------------
>
I am absolutely amazed but grateful that you took so much time out from your
own coding to write such an extensive reply! I haven't had a chance to
look through it yet, but I wanted to make sure I thanked you before I got
distracted! Thanks SO much!
Yet another example of why this group is so great!
--Mark
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
INVALID_ADDRESS wrote:
>Now look at the midpoint 'Center2' of a circle touching the sides
>emanating from Corner2. Due to symmetry of this circle and the triangle
>with respect to the line through Corner2 and Center2, the angle between
>this line and the x-axis is 30 degrees (60/2). Now imagine a new point:
>the mirror image 'M' of Center1 with respect to the x-axis. The triangle
> Corner2 -- Center1 -- M
>has 30+30 degrees at Corner1 (x-axis symmetry),
I was following just fine until this point (no pun intended).
On *my* diagram, Center1 corresponds to Corner1, Center2 to Corner2, etc.
I wondered if perhaps you meant to say that the point 'M' was the mirror
image of Center2, rather than Center1. If I make point 'M' a mirror image
(with respect to the x-axis) of Center1, I end up with an isosceles
triangle whose longest side is the vertical line Center1 -- M . This
leaves me with point 'M' having a y-value which is the negative of
The only way I can come up with the equilateral triangle you reference is by
substituting one vertex so that the vertices of the triangle are now
Corner2 -- Center2 -- M.
(Please forgive crude "drawing"):
| <-- y-axis
| (.) Corner1
|
| (.) Center1
|
| (.)Center2
|
..Corner2______________ (x-axis)
|
|
| (.) 'M'
|
|
|
Maybe I'm being dense in the head?....
Thanks,
mark
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From:
Subject: Re: Fitting a gothic trefoil into an equilateral triangle
Date: 25 Jun 2003 17:47:56
Message: <3efa188c@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Hi Mark,
obviously *I* am dense and you found my 3 errors. The section about
the centers should begin as follows:
[ centers ]
Now look at the midpoint 'Center2' of a circle touching the sides
emanating from Corner2. Due to symmetry of this circle and the triangle
with respect to the line through Corner2 and Center2, the angle between
this line and the x-axis is 30 degrees (60/2). Now imagine a new point:
the mirror image 'M' of Center2 with respect to the x-axis. The triangle
Corner2 -- Center2 -- M
has 30+30 degrees at Corner2 (x-axis symmetry), its other two angles are
<continues as before>
Sorry for creating this confusion.
> If I make point 'M' a mirror image
> (with respect to the x-axis) of Center1, I end up with an isosceles
> triangle whose longest side is the vertical line Center1 -- M . This
> leaves me with point 'M' having a y-value which is the negative of
If this "angle at Corner2" is meant to be
angle ( Center1, Corner2, x-axis mirror image of Center1 )
M1 = x-axis mirror image of Center1
Because Center1 is inside the triangle Corner1 -- Corner2 -- Corner3,
angle ( Center1, Corner2, x-axis)
< angle ( Corner1, Corner2, x-axis)
Now
"angle at Corner2"
= 2 * angle ( Center1, Corner2, x-axis) [x-axis symmetry]
case the "longest" side has the same length as the other sides!
Is the rest of my previous post understandable (with the above
corrections)?
Sputnik
P.S.
Why "INVALID_ADDRESS" at the beginning of your last post?
--
----------------------------
fr### [at] computermuseum fh-kiel de
----------------------------
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: LinuxLibrarian
Subject: Re: Fitting a gothic trefoil into an equilateral triangle
Date: 25 Jun 2003 20:43:23
Message: <3efa41ab@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Hi Mark,
>
> obviously *I* am dense and you found my 3 errors. The section about
> the centers should begin as follows:
>
> [ centers ]
> Now look at the midpoint 'Center2' of a circle touching the sides
> emanating from Corner2. Due to symmetry of this circle and the triangle
> with respect to the line through Corner2 and Center2, the angle between
> this line and the x-axis is 30 degrees (60/2). Now imagine a new point:
> the mirror image 'M' of Center2 with respect to the x-axis. The triangle
> Corner2 -- Center2 -- M
> has 30+30 degrees at Corner2 (x-axis symmetry), its other two angles are
> <continues as before>
>
> Sorry for creating this confusion.
>
>
>
>>If I make point 'M' a mirror image
>>(with respect to the x-axis) of Center1, I end up with an isosceles
>>triangle whose longest side is the vertical line Center1 -- M . This
>>leaves me with point 'M' having a y-value which is the negative of
>
>
> If this "angle at Corner2" is meant to be
> angle ( Center1, Corner2, x-axis mirror image of Center1 )
> M1 = x-axis mirror image of Center1
> Because Center1 is inside the triangle Corner1 -- Corner2 -- Corner3,
> angle ( Center1, Corner2, x-axis)
> < angle ( Corner1, Corner2, x-axis)
> Now
> "angle at Corner2"
> = 2 * angle ( Center1, Corner2, x-axis) [x-axis symmetry]
> case the "longest" side has the same length as the other sides!
>
>
> Is the rest of my previous post understandable (with the above
> corrections)?
>
> Sputnik
>
>
> P.S.
> Why "INVALID_ADDRESS" at the beginning of your last post?
>
I don't know, it's how *your* address appears in the postings on the
web-based interface to news.povray.org (see for yourself at
http://news.povray.org -- maybe you never read the newsgroups that way,
so you didn't realize your address was being (or rather, not) displayed
that way.
BTW, I also wondered about how you solved for the height. I quote:
"The y-coordinate is the Height of the triangle, found by the law of
pythagoras in the right-angled triangle
top point -- bottom left point -- midpoint of base line
so we get
Height^2 + (Side/2)^2 = Side^2
Solving for Height gives
Height = sqrt( Side^2 + Side^2/4 ) = sqrt(3)/2*Side"
Shouldn't the last line read:
Height = sqrt( Side^2 - (Side/2)^2) ?
Or is that really the same thing? I'm a little fuzzy on my exponents
where fractions & diving are concerned.
But for the rest of it, I'm going off line now to study your
"revised edition." ;-) THanks for all your indulgence! Sorry to be
such a persnickety pain-in-the-ass!
--Mark
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Hi Mark,
(Side/2)^2 = Side^2/4
The rule applied here is
(A/B) ^ C = (A^C) / (B^C)
You can see this by replacing exponentiation by repeated multiplication,
for example with C=5: (use an non-proportional font to read this)
(A/B)^5
A A A A A
= - * - * - * - * -
B B B B B
A*A*A*A*A
= ---------
B*B*B*B*B
A^5
= ---
B^5
= (A^5) / (B^5)
= A^5/B^5
The last equation is true because "^" has higher priority than "/" (and
"*"). (This is a convention to save some parantheses, not a mathematical
necessity!)
In the trefoil Height formula,
(Side/2)^2 = Side^2 / 2^2 = Side^2 / 4
so the Height is calculated as follows:
[law of pythagoras]
Height^2 + (Side/2)^2 = Side^2
[subtract (Side/2)^2 on both sides of equation]
Height^2 = Side^2 - (Side/2)^2
[power (here: sqare) of quotient as above]
Height^2 = Side^2 - Side^2 / 4
["*1 doesn't change anything; "/ 4" = "* 1/4"]
Height^2 = Side^2 * 1 - Side^2 * 1/4
[Side^2 is common factor]
Height^2 = Side^2 * (1-1/4) = Side^2 * 3/4
[square root on both sides of equation; sqrt(A*B) = sqrt(A)*sqrt(B)]
sqrt(Height^2) = sqrt( Side^2 * 3/4 ) = sqrt(Side^2) * sqrt(3) / sqrt(4)
[sqrt(A^2) = A (when A>=0)]
Height = Side * sqrt(3)/2
Probably you have noticed that at some places in my explanation post I have
removed square roots from the denominator, because generally root-less
denominators are (aesthetically) preferred. The following examples show
how this can be done. Of course this is not required for POV-Ray's
calculations, I've done it only for humans :)
A, B, ... are arbitrary expressions; if the denominator contains more than
one root, these methods will have to be repeatedly applied.
[case 1: nothing added to the root]
A A * sqrt(C) A * sqrt(C) A
--------- = ------------------- = ----------- = --- * sqrt(C)
B*sqrt(C) B*sqrt(C) * sqrt(C) B*C B*C
[case 2: denominator is a sum]
A A * (B*sqrt(C)-D)
------------- = -----------------------------
B*sqrt(C) + D (B*sqrt(C)+D) * (B*sqrt(C)-D)
[in denominator: (X+Y)*(X-Y) = X*X-X*Y+Y*X-Y*Y = X^2 - Y^2]
A*B*sqrt(C) - A*D A*B*sqrt(C) - A*D
= ------------------- = -----------------
(B*sqrt(C))^2 - D^2 B^2*C - D^2
How far can you proceed now in understanding the trefoil calculations?
Sputnik
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
INVALID_ADDRESS wrote:
> Of course this is not required for POV-Ray's
>calculations, I've done it only for humans :)
Or in my case, chimpanzees... But maybe that's being insulting to the
supposedly lower primates...
Thanks, I follow you now!
I bet you didn't realize you'd end up as an online math tutor...
Again, your patience is verging on the superhuman!
Many thanks again!
--Mark
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Mark M Wilson
Subject: Re: Fitting a gothic trefoil into an equilateral triangle
Date: 29 Jun 2003 22:35:47
Message: <3effa203@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
I made a couple of modifications to your original, now that I have some
understanding of what was going on. Basically, I moved the definition
of 'R' to after Radius, and made R=0.10*Radius
I also removed the part in the middle where the tori overlap.
// macro for trefoil ====================================================
#macro Trefoil (Side, Radius) // lower left corner at origin
#local Height = sqrt(3)/2*Side;
#local Corner1 = <Side/2, Height, 0>; // top corner
#local Corner2 = 0; // bottom left corner
#local Corner3 = Side*x; // bottom right corner
#local Center = <Side/2,
Height/3, 0>; // triangle
#local Center1 = <Side/2, Height-2*Radius, 0>; // top circle
#local Center2 = <sqrt(3)*Radius, Radius, 0>; // bottom left circle
#local Center3 = <Side-sqrt(3)*Radius, Radius, 0>; // bottom right
circle
#local R = Radius*0.1; //
union {
/*union {
sphere { Corner1, R }
sphere { Corner2, R }
sphere { Corner3, R }
cylinder { Corner1, Corner2, R }
cylinder { Corner2, Corner3, R }
cylinder { Corner3, Corner1, R }
texture { pigment { color green
1 } finish { ambient 1 } }
}*/
difference {
union {
torus { Radius, R rotate 90*x translate Center1
clipped_by {
plane { <0, -1, 0> 0 rotate -z*30 translate <(Side/2),
Center1.y-(Radius), 0> }
}
clipped_by {
plane { <0, -1, 0> 0 rotate z*30 translate <(Side/2),
Center1.y-(Radius), 0> }
}
}
torus { Radius, R rotate 90*x translate Center2
clipped_by {
plane { <0, 1, 0>, 0 rotate -z*30 translate <(Side/2),
(Center1.y-(Radius)), 0>
}}
clipped_by {
plane { <1, 0, 0>, 0 translate <Side/2, (Center1.y-(Radius)), 0> }
}}
torus { Radius, R rotate 90*x translate Center3
clipped_by {
plane { <-1, 0, 0>, 0 translate <Side/2, (Center1.y-Radius), 0> }
}
clipped_by {
plane { <0, 1, 0> 0 rotate z*30 translate <(Side/2),
(Center1.y-Radius), 0>}
}
}
texture { pigment { color red 1 } finish { ambient 1 } }
}
sphere { <Side/2, (Center1.y-Radius), 0> 2*R }
}
// "}" omitted to allow application of transformations
#end//macro Trefoil
// simple scene with trefoils ===========================================
//Trefoil ( 1 , 1*(sqrt(3)-1)/4 ) translate <-1.6, 0.2 , 1> } // small
Trefoil ( 0.46 , 0.46*sqrt(3)/9 ) translate <-0.5 , 0 , 1> } //
gothic
//Trefoil ( 1 , 1*sqrt(3)/6 ) translate < 0.6, 0.2 , 1> } // large
light_source { <-1500, 2500, -1000>, color rgb 1 }
camera { //orthographic
up y right 1.3*x
location <-0.23, 0.2, -0.09>
look_at <-0.23, 0.2, 0>
}
// END ==================================================================
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Hi Mark,
my little scene was meant as an illustration of a geometric problem -- nice
to see it evolve into something really useable. I suggest to supply the
"linewidth" as an additional parameter instead of a constant fraction of
Radius. If you decide to change this value, it's much easier to have POV-
Ray doing all the calculations instead of "re-inventing the wheel again and
again by hand-calculation". And you can't animate the "linewidth" when
this relationship is fixed. The calculations have to be done anyway,
there is almost no difference between using "0.1*Radius" and "Linewidth",
so give this parameter to POV-Ray and let it do the boring numerical work.
Having a "linewidth factor" parameter also would be possible; the actual
value for this parameter would be 0.1 to reproduce what you've done, but
can easily be changed at will.
Because the thin circles have become rings with some linewidth now, there
arises a new problem: What is a "true gothic" constellation?
Of course the outer border/circle of the rings must touch the triangle.
But how large should these rings be?
1. The outer circles intersect at the triangle's midpoint
This is the easiest case: outer circle is as before; some linewidth
is added towards the circle's centers.
2. The inner circles intersect at the triangle's midpoint
I don't think this is looking good with a large linewidth, so
the calculation isn't worth it.
3. The "mid-circles" with radius=(inner_radius+outer_radius)/2 intersect
at the triangle's midpoint.
I suppose this will look "most gothic", but will require some
calculation ... (maybe I'll do this).
You should also try to remove the inner parts of the rings by difference-ing
with a cylinder around Center, having a radius = Radius.
Next tasks :)
- replace the torii by cylindrical rings (difference of a cylinder and a
thinner, but slightly longer [to avois coincident surfaces] cylinder,
the Thickness being a new parameter). You have to do a little calculation
involving Linewidth (or LinewidthFactor or whatever), but then changing
this Linewidth is no pain: no new hand-calculation is neccessary, POV-Ray
does it all. I suggest to write a macro Ring ( Radius, Linewidth ) that
"behaves" similar to torus { Minor, Major ... }, this makes it easy to
change all torus{} objects to Ring objects. The trick of omitting the
closing "}" of the object created by Ring will help (look at the end
of the Trefoil macro where I used this trick).
- create your *own* stone texture
- arrange some trefoils, light source(s) and a camera to create a pleasing
scene; perhaps add some bricks, columns, decorative elements, windows,
floor tiles, stone carvings, stairs, roof tiles, ...
- at least *try* to find a solution for "true gothic" case 3.
Sputnik
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
INVALID_ADDRESS wrote:
>Of course the outer border/circle of the rings must touch the triangle.
>But how large should these rings be?
> 1. The outer circles intersect at the triangle's midpoint
> This is the easiest case: outer circle is as before; some linewidth
> is added towards the circle's centers.
> 2. The inner circles intersect at the triangle's midpoint
> I don't think this is looking good with a large linewidth, so
> the calculation isn't worth it.
> 3. The "mid-circles" with radius=(inner_radius+outer_radius)/2 intersect
> at the triangle's midpoint.
> I suppose this will look "most gothic", but will require some
> calculation ... (maybe I'll do this).
Yes, realistically the stone trifoil tracery would not be merely tangent to
a circle which frames it, but would look like it was being "blobbed" into
it. (Else, how could it the tracery be physically held in place?)
For instance, the hexafoils framing the stained glass in the upper part of
this image from Bourges Cathedral:
http://www.bc.edu/bc_org/avp/cas/fnart/arch/gothic/bourges/bourges_int09.jpg
>
>You should also try to remove the inner parts of the rings by difference-ing
>with a cylinder around Center, having a radius = Radius.
I didn't know if it really mattered exactly what sort of primitive was being
used to difference out the parts of the rings. Would there be a benefit in
terms of tracing/parsing time?
>Next tasks :)
> - replace the torii by cylindrical rings (difference of a cylinder and a
> thinner, but slightly longer [to avois coincident surfaces] cylinder,
> the Thickness being a new parameter). You have to do a little calculation
> involving Linewidth (or LinewidthFactor or whatever), but then changing
> this Linewidth is no pain: no new hand-calculation is neccessary, POV-Ray
> does it all. I suggest to write a macro Ring ( Radius, Linewidth ) that
> "behaves" similar to torus { Minor, Major ... }, this makes it easy to
> change all torus{} objects to Ring objects. The trick of omitting the
> closing "}" of the object created by Ring will help (look at the end
> of the Trefoil macro where I used this trick).
I thought of this, but the edges looked a little too squared off for what I
remember being authentic (and I've been poring over A LOT of books &
websites about cathedrals & Gothic style).
> - create your *own* stone texture
jaw drops, mouth goes dry, limbs gradually go numb... ;-)
> - arrange some trefoils, light source(s) and a camera to create a pleasing
> scene; perhaps add some bricks, columns, decorative elements, windows,
> floor tiles, stone carvings, stairs, roof tiles, ...
> - at least *try* to find a solution for "true gothic" case 3.
>
The 2nd of these last two tasks seems to be the easier!
I have thus far a floor, columns & footings, empty windows waiting for
inspired "glass" (maybe just borrowed images converted to a format that
will allow me to play with the transparency/translucency). I also have the
nave ceiling ribbing and vaulting, piers at the 'crossing', a west wall &
portal. All of these are still quite primitive looking, but they're the
most my skills (and limited time to work ) allow.
I went thorough a lot of trouble to get the vault ribbing to look like it
was composed of individual component pieces (again, as in the image cited
above).
I'd post it on the images group as a WIP, but I'm still too embarrassed at
how little progress I've made, when I think of how long I've actually been
at it.
But then again, I really didn't spend a lot of time on spheres & checkered
planes before I dove in over my head. Boring!
Thanks again for all your input!
--Mark
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |