![](/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, I used the following, and obviously expected it to work as I wanted
but it didn't
#local d1link2 = vaxis_rotate(<-7,0,5>,<0,0,5>,steer);
#local d2link2 = vaxis_rotate(<-7,0,-5>,<0,0,-5>,steer);
So I am wondering if there is a way to choose which axis it rotates
around?
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) |
"Rob Brown-Bayliss" <rob### [at] zoism org> wrote in message
news:3d34d9cc@news.povray.org...
> Hi, I used the following, and obviously expected it to work as I wanted
> but it didn't
>
> #local d1link2 = vaxis_rotate(<-7,0,5>,<0,0,5>,steer);
> #local d2link2 = vaxis_rotate(<-7,0,-5>,<0,0,-5>,steer);
>
> So I am wondering if there is a way to choose which axis it rotates
> around?
vaxis_rotate rotates returns the position of the first point if you rotated it
around the second point using the 3rd parameter as the amount to rotate.
Obviously, the second point doesn't describe an axis direction on its own - the
axis is defined as perpendicular to a line connecting the first and second
points, and passing through the second point.
What's it doing that you don't expect?
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) |
> > #local d1link2 = vaxis_rotate(<-7,0,5>,<0,0,5>,steer);
> > #local d2link2 = vaxis_rotate(<-7,0,-5>,<0,0,-5>,steer);
> >
> > So I am wondering if there is a way to choose which axis it rotates
> > around?
>
> vaxis_rotate rotates returns the position of the first point if you
rotated it
> around the second point using the 3rd parameter as the amount to rotate.
>
> Obviously, the second point doesn't describe an axis direction on its
own - the
> axis is defined as perpendicular to a line connecting the first and second
> points, and passing through the second point.
>
> What's it doing that you don't expect?
>
I think you have it wrong here. In 3D, there is no one vector that is
perpendicular to a given vector, it can be any vector on the plane which is
perpendicular to the first so it coudn't possibly do what you describe
(unless I misunderstand).
What the function vaxis_rotate(A,B,F) appears to do from my understanding is
rotate pt A around the vector defined by B that passes through the origin
<0,0,0>, by the angle F in degrees.
ie. vaxis_rotate(<0,1,0>,<0,0,1>,90) gives <-1,0,0>, likewise
vaxis_rotate(<0,1,0>,<0,0,10>,90) gives the same result.
-tgq
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) |
"TinCanMan" <Tin### [at] hotmail com> wrote in message
news:3d355bcd@news.povray.org...
> I think you have it wrong here. In 3D, there is no one vector that is
<verysmallvoice> Yes, I am... </verysmallvoice>
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) |
TinCanMan <Tin### [at] hotmail com> wrote:
> What the function vaxis_rotate(A,B,F) appears to do from my understanding
Hmm... I don't understand how this is not crystal clear. What else would
it do?
The vector B defines the axis around which the point A is rotated F degrees.
Simple.
--
#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" <war### [at] tag povray org> wrote in message
news:3d358a53@news.povray.org...
> TinCanMan <Tin### [at] hotmail com> wrote:
> > What the function vaxis_rotate(A,B,F) appears to do from my
understanding
>
> Hmm... I don't understand how this is not crystal clear. What else would
> it do?
> The vector B defines the axis around which the point A is rotated F
degrees.
> Simple.
I suppose it is now that Tom has admitted his mistake. I just get wary when
someone says something contrary to what I thought was true and start
wondering if maybe I'm making the mistake or them.
-tgq
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" <war### [at] tag povray org> wrote in message news:3d358a53@news.povray.org...
>
> Hmm... I don't understand how this is not crystal clear. What else would
> it do?
> The vector B defines the axis around which the point A is rotated F degrees.
> Simple.
Well, a single vector cannot define an axis, so "crystal clear" it ain't. I
would agree that, on reflection, the axis running from <0,0,0> to B is the only
logical conclusion, but it is not stated in the docs afaik.
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) |
In article <3d3593ee$1@news.povray.org>,
"Tom Melly" <tom### [at] tomandlu co uk> wrote:
> Well, a single vector cannot define an axis, so "crystal clear" it ain't.
Yes it can...think about it a bit. An axis is just a direction, so you
only need one vector to represent it.
It is used elsewhere as well...the normal vector of a plane; the
predefined x, y, and z vectors; etc.
> I would agree that, on reflection, the axis running from <0,0,0> to B
> is the only logical conclusion, but it is not stated in the docs
> afaik.
It isn't stated because it is fairly obvious. Why should vaxis_rotate()
have a different origin? Nothing else does. You seem to be thinking of a
ray for some reason.
--
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) |
Christopher James Huff <chr### [at] mac com> wrote:
> It isn't stated because it is fairly obvious. Why should vaxis_rotate()
> have a different origin? Nothing else does. You seem to be thinking of a
> ray for some reason.
On the other hand, it would sometimes be useful to be able to rotate
a point/object around an axis *not* going through the origin. Is there
a standard macro for this?
--
#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) |
"Christopher James Huff" <chr### [at] mac com> wrote in message
news:chr### [at] netplex aussie org...
<snip>
Well, we've established I'm a dimwit....
Okay, how about someone writes a nice vaxis_rotate_extra(A,B,C,D) function
where A is the point to rotate, around an axis defined by B and C, and D being
the amount. I suspect that this is what Rob B-B wanted....
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) |