|
|
In article <MPG.12c18e98202e9328989683@news.povray.org>, Mario Splivalo
<msp### [at] jagorsrcehr> wrote:
> Anyone, please, i'd love to plot a graph of the function, well, it's like
> this:
>
> I have y = x * sin(1/x), and its some graph in 2D, Well, now i want to
> rotate that graph around the z-axe (one pointing up/down), and represent
> that in POV. Is that possible withouht 3rd party programs/utils?
If you mean you want to make a kind of lathe, swept around the z axis,
it would be pretty simple to do. One way would be to use an isosurface,
with a function like:
function {z - sqrt(x^2 + y^2)*sin(1/sqrt(x^2 + y^2))}
replacing x with sqrt(x^2 + y^2), which is the distance from the z axis.
Another way would be to use an actual lathe object, and use a #while
loop to calculate the position of each control point.
Or if you want to represent the actual graph in POV, not making a 3D
graph, you can use an image_map to use a picture of the graph for the
texture, or you can create it out of objects, something like
this(untested!):
#macro GetValAt(V)
(V*sin(1/V))
#end
#macro MakeGraph(Elems, XSize, graphRadius, graphTexture)
#local stPos = < 0, 0, 0>;
sphere {stPos, graphRadius
texture {graphTexture}
}
#local K=0;
#while(K<Elems)
#local endPos = <(K/(Elems - 1))*XSize, GetValAt((K/(Elems -
1))*XSize), 0>;
cylinder {stPos, endPos, graphRadius
texture {graphTexture}
}
sphere {endPos, graphRadius
texture {graphTexture}
}
#local stPos = endPos;
#local K=K+1;
#end
#end
This macro would be used like this:
MakeGraph(50, 5, 0.05, MyTexture)
Where:
Elems = the number of elements in the graph
XSize = the distance along the x axis the graph extends
graphRadius = the radius of the graph elements
graphTexture = the texture of the graph elements
--
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/
Post a reply to this message
|
|