![](/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) |
In article <3c879ab8@news.povray.org>, Warp <war### [at] tag povray org>
wrote:
> In order to really achieve almost any possible orientation, that random
> rotation should be applied several times. Perhaps even a random number of
> times. For example:
I think a better way would just be to generate a random point on the
surface of a sphere (using VRandOnSphere()) and use the PointAtTrans()
macro. Probably should rotate by a random amount around the y axis first.
--
Christopher James Huff <chr### [at] mac com>
POV-Ray TAG e-mail: chr### [at] tag povray org
TAG web site: http://tag.povray.org/
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) |
> Note that this does not achieve *any* possible orientation the object
can
> have. For example, I think that it can never reach an orientation like
> caused by
> rotate y*30 rotate x*30
>
> In order to really achieve almost any possible orientation, that random
> rotation should be applied several times. Perhaps even a random number of
> times.
I believe all orientations are covered by just
rotate 360*<rand(R1),rand(R2),rand(R3)>
I'm pretty sure that takes care of all orientations. Whether or not they're
all equally likely is another question.
(Here's why I think that covers everything. Just the point <1,0,0> around
the y axis and then around the z axis randomly gives it the possibility of
pointing in any possible direction. If you're working with an object, and
you rotate it around the x axis, you sort of spin it in any possible
orientation. Then rotating it around the y and z axis like you did with the
point makes it point in a random direction.)
- 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 <noo### [at] hotmail com> wrote:
> I believe all orientations are covered by just
> rotate 360*<rand(R1),rand(R2),rand(R3)>
So give me a "rotate <A,B,C>" command which, when replacing the two rotates
with it in the scene below, will give the exact same image:
camera { location <1,2,-3> look_at y*.5 angle 35 }
light_source { <100,250,-50>, 1 }
plane { y,0 pigment { checker rgb 1, rgb .5 } }
#declare Object =
intersection
{ cone { 0,.5, y,.2 }
box { <-.5,-.01,0><.5,1.01,.5> }
pigment { rgb x+y }
}
object
{ Object
rotate y*45 rotate x*45
}
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
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) |
Warp wrote:
>
> So give me a "rotate <A,B,C>" command which, when replacing the two rotates
> with it in the scene below, will give the exact same image:
>
> rotate y*45 rotate x*45
I believe this is close enough. Don't have time to calculate
the exact transform.
rotate<53,30,35>
_____________
Kari Kivisalo
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) |
Kari Kivisalo <ray### [at] engineer com> wrote:
> rotate<53,30,35>
I didn't think of it that way.
Is any combination of free rotates achievable with a rotate <A,B,C>?
Somehow it's very hard to grasp.
Some kind of intuitive, graphical or mathematical proof could help.
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
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) |
Warp wrote:
>
> Is any combination of free rotates achievable with a rotate <A,B,C>?
I think it was Euler who proved that any orientation in space could be
represented by a single rotation about an arbitrary axis, and that this
rotation is equivalent to three successive rotations about the x, y and
z axes.
_____________
Kari Kivisalo
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) |
Kari Kivisalo <ray### [at] engineer com> wrote:
> I think it was Euler who proved that any orientation in space could be
> represented by a single rotation about an arbitrary axis
That's even more radical!
But thinking hard about it, it starts to be intuitive...
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
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) |
let me summarize this please, to understand this ...
We proved Warp, to be wrong ?
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) |
Jan Walzer <jan### [at] lzer net> wrote:
> We proved Warp, to be wrong ?
So?
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
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) |
Jan Walzer wrote:
>
> We proved Warp, to be wrong ?
But it was educational. It was the 1st time I tried in practice
an abstract piece of information learned long time ago. If Warp
hadn't asked the question I wouldn't have learned that arbitrary
orientation can be also defined as x y x rotation. When building
a robot this might be good to know :)
_____________
Kari Kivisalo
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) |