![](/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) |
Here is the second front cover of a thesis I made.
(see also 'front of a dutch thesis (1)')
The title is:'On the connectedness of inside and
outside, or how a balloon and a basket reflect on
the surface'
This is the thesis of a biomedical engineer working
also in cardiology. This was more or less the
technical counterpart of the clinical study.
Defence of this theses was two weeks after the other.
It was somewhat stressy in that period :)
This one is more complicated and more symbolic.
The glass object floating is a Klein bottle.
Klein bottles have the property that they do
not have an inside and outside surface; it is
just one surface. In the research project we
studied both the potentials on the inside surface
of the heart wall and the potentials at the body
surface. The Klein bottle was symbolic for the
connectedness of both surfaces.
To make it I modified a Klein bottle from the Matlab
software package in order to get a finite wall thickness.
(actually I made several in various resolutions the one
I used on this image had an include file of 30 MB, so
during testing I used some smaller version).
The hot air balloon is there because to measure in the
heart we used both a balloon electrode as well as a
basket electrode (see also the spline object on the
other thesis)
On the table there is a stack oft he 5 theses that precede
this one in this line of research. (the top one is of
course the one of the first posting, the middle is mine).
The table in modelled after a table we had in our room,
we 'inherited' it from the founder of our lab
(prof. van der Tweel). So in a sence everything we do
still builds on his work.
The king of hearts is because there is a quote from
alice. The cup of coffee is of course from povray.
Creating this image was done iteratively. The thesis
itself is on the table in the scene although with
another title (viz. the subtitle of the thesis).
There is also a variant of this image with glasses
of wine in stead of coffee and the title changed to
'integrated electrocardiographic party'. This we used
for the invitations.
That probably covers most of it :)
Andrel
Post a reply to this message
Attachments:
Download 'potse.jpg' (283 KB)
Preview of image 'potse.jpg'
![potse.jpg](/povray.binaries.images/attachment/%3C3C2F1402.ACC89C6E%40amc.uva.nl%3E/potse.jpg?ttop=443840&toff=9950&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Hmm, what's the formula for a klein bottle?
- Slime
[ http://www.slimeland.com/ ]
[ http://www.slimeland.com/images/ ]
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) |
Slime wrote:
>
> Hmm, what's the formula for a klein bottle?
>
I do not think there is. First there is not such a thing as
_the_ Klein bottle. It is a general description for objects
that have a finite surface, that do not have discontinuities,
and where there for every point on the surface a path that
gets you to the other surface.
Second because for every point on the surface the normal
points both in and out, I do not think there is an analitic
formula for any Klein bottle.
In the construction of this bottle I followed the approach
of Denise L. Chen in the Matlab demo's here is what she sais
% A Klein bottle is a nonorientable surface in
% four-dimensional space. It is formed by attaching two
% Mobius strips along their common boundary.
%
% Klein bottles cannot be constructed without intersection
% in three-space. The figure shown is an example of such a
% self-intersecting Klein bottle.
%
% Thanks to Davide Cervone, University of Minnesota.
% Denise L. Chen 7-6-93
% Copyright (c) 1984-98 by The MathWorks, Inc.
% $Revision: 1.22 $ $Date: 1997/11/21 23:27:39 $
I do not think this makes any sense but this is what was in
the description.
Construction is as follows: make two objects
- the bulb, essentially a surface of recolution
- the handle, shaped like an inverted question mark (without the dot)
and merge them together.
Attached is another image that shows the construction better
note that there is some tension in the glass where the
handle attached to the bulb at the lower point.
I used a mesh for this image, I think now with the new features
I would use the sphere_sweep for the handle (although we do
have this problem with the inverse of the sphere sweep)
Andrel
> - Slime
> [ http://www.slimeland.com/ ]
> [ http://www.slimeland.com/images/ ]
Post a reply to this message
Attachments:
Download 'klein.jpg' (24 KB)
Preview of image 'klein.jpg'
![klein.jpg](/povray.binaries.images/attachment/%3C3C3056CB.C0162755%40amc.uva.nl%3E/klein.jpg?ttop=443840&toff=9950&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Slime schrieb in Nachricht <3c2ffc25@news.povray.org>...
>Hmm, what's the formula for a klein bottle?
>
How about using the f_klein_bottle(x,y,z, P0) in functions.inc as an
isosurface?
And as it was mentioned in p.b-t, there is at the moment a way to save the
output of VM to a file, perhaps you are able to extract the formula (if
there is any) or method to build the Klein bottle from there?
Marc-Hendrik
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) |
> And as it was mentioned in p.b-t, there is at the moment a way to save the
> output of VM to a file, perhaps you are able to extract the formula (if
> there is any) or method to build the Klein bottle from there?
Maybe I'll just wait until the POV-Ray source is available and then read it.
=)
Interesting, though, Andrel did provide some good reasons why there can't be
one function for it, at least in 3D space. Unless you consider the
intersection of itself with itself to be a "dead end," sort of.
- Slime
[ http://www.slimeland.com/ ]
[ http://www.slimeland.com/images/ ]
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) |
Slime schrieb in Nachricht <3c32a80a@news.povray.org>...
>> And as it was mentioned in p.b-t, there is at the moment a way to save
the
>> output of VM to a file, perhaps you are able to extract the formula (if
>> there is any) or method to build the Klein bottle from there?
>
>Maybe I'll just wait until the POV-Ray source is available and then read
it.
>=)
It should be in the MegaPov sources, too. They should be still available at
http://nathan.kopp.com/download.htm.
The VM (of course) just calls the internal function 35, so that's of no
help.
Marc-Hendrik
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) |
"Marc-Hendrik Bremer" <Mar### [at] t-online de> wrote:
> Slime schrieb in Nachricht <3c2ffc25@news.povray.org>...
> >Hmm, what's the formula for a klein bottle?
>
> How about using the f_klein_bottle(x,y,z, P0) in functions.inc as an
> isosurface?
I've tried that one but it gives very strange results:
#include "colors.inc"
#include "functions.inc"
light_source { <10,10,10> color White }
camera { location<4,4,4> look_at<0,0,0> }
isosurface {
function { f_klein_bottle(x,y,z,1) }
accuracy 0.01
max_gradient 4
pigment { color rgb <0, 2, 0> }
}
// pigment {image_map { jpeg "test.jpg" map_type 1 interpolate 2 filter all
1.0 } }
box { <-5, -2, -5>, <5, -2, 5> pigment { color White } }
The result is:
http://vanheusden.com/pov/surface.png
Doesn't look like the ones on wikipedia
(http://en.wikipedia.org/wiki/Klein_bottle).
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) |
> "Marc-Hendrik Bremer"<Mar### [at] t-online de> wrote:
>> Slime schrieb in Nachricht<3c2ffc25@news.povray.org>...
>>> Hmm, what's the formula for a klein bottle?
>>
>> How about using the f_klein_bottle(x,y,z, P0) in functions.inc as an
>> isosurface?
>
> I've tried that one but it gives very strange results:
>
> #include "colors.inc"
> #include "functions.inc"
>
> light_source {<10,10,10> color White }
> camera { location<4,4,4> look_at<0,0,0> }
>
> isosurface {
> function { f_klein_bottle(x,y,z,1) }
> accuracy 0.01
> max_gradient 4
> pigment { color rgb<0, 2, 0> }
> }
>
> // pigment {image_map { jpeg "test.jpg" map_type 1 interpolate 2 filter all
> 1.0 } }
>
> box {<-5, -2, -5>,<5, -2, 5> pigment { color White } }
>
>
> The result is:
>
> http://vanheusden.com/pov/surface.png
>
> Doesn't look like the ones on wikipedia
> (http://en.wikipedia.org/wiki/Klein_bottle).
>
>
The default contained_by object is box{-1, 1} and it's to small for that
object.
You need this:
contained_by{box{<-2.88, -2.42, -3.66><2.88, 3.04, 3.66>}}
As small as possible.
The function have a prety high max_gradient: 180 to 2500 depending on
P0, the orientation and camera position.
As it is, the shape can be considered as "fat".
P0 is required but have no apparent effect: same result with values of
0.1, 1 and 10. It DOES affect the max_gradient: large value = high
max_gradient but don't affect rendering time.
Anyway, the bottle from the function don't look the same as the
representation you mention. It's, owever, topologicaly identical.
Alain
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) |
[[ klein bottle ]]
> > Doesn't look like the ones on wikipedia
> > (http://en.wikipedia.org/wiki/Klein_bottle).
>
> The default contained_by object is box{-1, 1} and it's to small for that
> object.
> You need this:
> contained_by{box{<-2.88, -2.42, -3.66><2.88, 3.04, 3.66>}}
> As small as possible.
Hmmm, maybe this should be documented somewhere.
> The function have a prety high max_gradient: 180 to 2500 depending on
> P0, the orientation and camera position.
> As it is, the shape can be considered as "fat".
> P0 is required but have no apparent effect: same result with values of
> 0.1, 1 and 10. It DOES affect the max_gradient: large value = high
> max_gradient but don't affect rendering time.
> Anyway, the bottle from the function don't look the same as the
> representation you mention. It's, owever, topologicaly identical.
Thanks!
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) |
On 7-8-2011 20:41, folkert wrote:
> "Marc-Hendrik Bremer"<Mar### [at] t-online de> wrote:
>> Slime schrieb in Nachricht<3c2ffc25@news.povray.org>...
>>> Hmm, what's the formula for a klein bottle?
>>
>> How about using the f_klein_bottle(x,y,z, P0) in functions.inc as an
>> isosurface?
>
> I've tried that one but it gives very strange results:
>
> #include "colors.inc"
> #include "functions.inc"
>
> light_source {<10,10,10> color White }
> camera { location<4,4,4> look_at<0,0,0> }
>
> isosurface {
> function { f_klein_bottle(x,y,z,1) }
> accuracy 0.01
> max_gradient 4
> pigment { color rgb<0, 2, 0> }
> }
>
> // pigment {image_map { jpeg "test.jpg" map_type 1 interpolate 2 filter all
> 1.0 } }
>
> box {<-5, -2, -5>,<5, -2, 5> pigment { color White } }
>
>
> The result is:
>
> http://vanheusden.com/pov/surface.png
>
> Doesn't look like the ones on wikipedia
> (http://en.wikipedia.org/wiki/Klein_bottle).
>
It is not really an answer, but I should still have the source for the
bottle somewhere in my archive.
--
Apparently you can afford your own dictator for less than 10 cents per
citizen per day.
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) |