









 
 




 
 


One of the few tasks I've set myself in order to stay sane is to get back into
using POVRay and not dumping for one of the visual based programs. On that
front, one of the first things I want to do is make a dream catcher that I can
plug simple numbers in as variables and the coding does all the rest of the
work.
So, you set Diameter as the diameter of the hoop (the first part of torus
descriptor) and Thick as the thickness of the hoop (variable 2 of the Torus
descriptor). Automatically you can set the starting point of the thread (Start)
as Diameter(Thick/2) (as i understand it, the 2nd variable of a torus sets the
total diameter of the cylinder used in making the torus, so finding the inside
edge is half that).
Now, to the hard stuff as I was never more then a geometry kid in high school.
1) I figure telling the computer that the length of each initial cylinder
'thread' is 1/nth (where n = the # of times you wrap the thread around the hoop
that establishes the first part of the weave) the circumference of the inside of
the torus {3.141593*[(rthickness of hoop)squared]} or (3.141593 * Thick)/n. (if
I'm wrong correct me)
2)How do I tell POVRay to draw the Thread from the starting point to the proper
place along the inside of the Hoop without having to manually type in the
coordinates? I mean I understand I know how far the thread with stretch, but I
can't get my head to wrap around telling POV how to find that point. In the real
world I would use a ruler to measure to that point, but what 'ruler' do I get
POV to use?
Post a reply to this message


 
 




 
 


I forgot to add:
how do I find the new circumference created by the initial row of threads? Thus
allowing me to continue the thread 'weaving' d # of times?
Post a reply to this message


 
 




 
 


"galenwolfe" <gal### [at] yahoocom> wrote:
> I forgot to add:
>
> how do I find the new circumference created by the initial row of threads? Thus
> allowing me to continue the thread 'weaving' d # of times?
I'm not going to answer your questions directly (yet), but here is the 'motor'
behind many radial operations in programming:
#declare Rot = 30; // degrees
#declare Rad = 1; // radius
// point of rotation 'Rot' with radius 'Rad' along the xy plane
#declare RotatedPt =
Rad*<
sin(pi*2/360*Rot),
cos(pi*2/360*Rot),
0
>;
Or, you could do it this way:
#declare RotatedPt = vrotate(y*Rad, z*Rot);
Connecting two points amounts to just making two different points in this
manner!
Does this help?
Sam
Post a reply to this message


 
 




 
 


Le 11/09/2013 00:31, galenwolfe nous fit lire :
> I forgot to add:
>
> how do I find the new circumference created by the initial row of threads? Thus
> allowing me to continue the thread 'weaving' d # of times?
>
From looking at
> http://www.wikihow.com/MakeaDreamcatcher
it seems that, starting with a 8 attach points, the thread go from N to
N+2 until it cross the line of N1 to N+1 at which point it goes to N+1.
8 regular points on a circle are every pi/4 (or 45Â°). Going from N to
N+2, the line is also at 45Â° and stop after pi/8 from the center.
Therefore, the ratio between external radius and internal radius (for
the next iteration, turned by pi/8 (22.5Â°)) is 1:sqrt(10)/4
(distance from center of inflexion point is sqrt( (sqrt(2)/2)^2 +
(sqrt(2)/4)^2), angle is pi/8+k*pi/4, when the external points are at 1
at angle of k*pi/4 )
(ratio, aka scale factor for povray, is about 1 to 0.79056941504209483299 )
Post a reply to this message


 
 




 

