POV-Ray : Newsgroups : povray.general : Translate a point Server Time
1 Nov 2024 03:16:52 EDT (-0400)
  Translate a point (Message 1 to 8 of 8)  
From: Bill DeWitt
Subject: Translate a point
Date: 30 Nov 1999 08:52:25
Message: <3843d699@news.povray.org>
I thought I knew how to do this once, but now I can't even find the keyword
I want. I have a point:
#declare A_Point = 0;
and I want to move it...
#declare A_Point = A_Point +My_Transform;

wasn't there a v_translate() or something to do that with? I know I am going
to feel stupid when I get the answer.


Post a reply to this message

From: Markus Becker
Subject: Re: Translate a point
Date: 30 Nov 1999 08:55:29
Message: <3843D912.FC77B513@student.uni-siegen.de>
Bill DeWitt wrote:
> 
> I thought I knew how to do this once, but now I can't even find the keyword
> I want. I have a point:
> #declare A_Point = 0;
> and I want to move it...
> #declare A_Point = A_Point +My_Transform;

I'm not sure, if I understand your problem, but the following works
(untested, so don't blame me).

#declare A_Point = <px,py,pz>;
#declare A_Trans = <tx,ty,tz>;
#declare An_Other_Point = A_Point+A_Trans;
> 
> wasn't there a v_translate() or something to do that with? I know I am going
> to feel stupid when I get the answer.

So?

Markus
-- 
Der deutsche Schlager ist aus dem Klofenster gesprungen....


Post a reply to this message

From: Bill DeWitt
Subject: Re: Translate a point
Date: 30 Nov 1999 09:05:26
Message: <3843d9a6@news.povray.org>
"Markus Becker" <mar### [at] studentuni-siegende> wrote :
>
> I'm not sure, if I understand your problem, but the following works
> (untested, so don't blame me).
>
> #declare A_Point = <px,py,pz>;
> #declare A_Trans = <tx,ty,tz>;
> #declare An_Other_Point = A_Point+A_Trans;

    Right. But ...

> #declare A_Point = <px,py,pz>;
> #declare A_Trans = transform{translate first_translation
                                                        translate
second_translation
                                                        matrix MyMatrix}

 #declare An_Other_Point = A_Point+A_Trans;

    doesn't work.

    or at least I haven't gotten it to work for me...

    I've got to go now, but when I come back I will explain further, perhaps
I am not trying to do the right thing and need to go back and check my
premises.


Post a reply to this message

From: Ron Parker
Subject: Re: Translate a point
Date: 30 Nov 1999 09:30:04
Message: <3843df6c@news.povray.org>
On Tue, 30 Nov 1999 09:05:21 -0500, Bill DeWitt wrote:
> #declare An_Other_Point = A_Point+A_Trans;
>
>    doesn't work.
>
>    or at least I haven't gotten it to work for me...
>
>    I've got to go now, but when I come back I will explain further, perhaps
>I am not trying to do the right thing and need to go back and check my
>premises.

There's no way to do that in the official version.  I think Chris Huff's
version includes a vtransform function, though.

-- 
These are my opinions.  I do NOT speak for the POV-Team.
The superpatch: http://www2.fwi.com/~parkerr/superpatch/
My other stuff: http://www2.fwi.com/~parkerr/traces.html


Post a reply to this message

From: Bill DeWitt
Subject: Re: Translate a point
Date: 30 Nov 1999 11:43:09
Message: <3843fe9d@news.povray.org>
"Ron Parker" <ron### [at] povrayorg> wrote :
>
> There's no way to do that
>

    That's what I was starting to think.

    Here's what I want to do:

    I have the sigcam() cut down to the basics without the text functions. I
want to use it to build a prism, hopefully by writing:
    prism{blahblah
                <SigCam(x1, camerainfo),SigCam(y1, camerainfo)>
                <SigCam(x2, camerainfo),SigCam(y2, camerainfo)>
                <SigCam(x3, camerainfo),SigCam(y3, camerainfo)>
              }///end prism
... or something to that effect.  But to do this I need to be able to
transform a point somehow.  Either that or I have to build the prism, then
scale and translate it with the SigCam. That's probably what I will end up
doing... unless there is something I can't see right now.

The works of the SigCam() for those who haven't looked at it, are...

#macro SigCam (
                ///(add point location info),
                camera_location,
                camera_right,camera_up,camera_direction,
                camera_sky,camera_angle,camera_look_at
               )

#local autotext_t = camera_location;
#local autotext_z =
vnormalize (camera_look_at-camera_location)
  /2
  *vlength(camera_right)
  /tan(radians(camera_angle/2));

#local autotext_x = vnormalize(vcross(camera_sky,autotext_z));
#local autotext_y = vnormalize(vcross(autotext_z,autotext_x));

object {
                MyObject
                texture{TextTetxure}
                translate 0.2
                translate <0.666,0.50,0> /////// change these to move around
screen
              }
        no_shadow translate z scale 0.001
        matrix  <
                  autotext_x.x,autotext_x.y,autotext_x.z,
                  autotext_y.x,autotext_y.y,autotext_y.z,
                  autotext_z.x,autotext_z.y,autotext_z.z,
                  autotext_t.x,autotext_t.y,autotext_t.z
                >
        }/// end object


Post a reply to this message

From: Ron Parker
Subject: Re: Translate a point
Date: 30 Nov 1999 11:52:27
Message: <384400cb@news.povray.org>
On Tue, 30 Nov 1999 11:43:08 -0500, Bill DeWitt wrote:
>    Here's what I want to do:
>
>    I have the sigcam() cut down to the basics without the text functions. I
>want to use it to build a prism, hopefully by writing:
>    prism{blahblah
>                <SigCam(x1, camerainfo),SigCam(y1, camerainfo)>
>                <SigCam(x2, camerainfo),SigCam(y2, camerainfo)>
>                <SigCam(x3, camerainfo),SigCam(y3, camerainfo)>
>              }///end prism
>... or something to that effect.  But to do this I need to be able to
>transform a point somehow.  Either that or I have to build the prism, then
>scale and translate it with the SigCam. That's probably what I will end up
>doing... unless there is something I can't see right now.

Don't you have to build and transform anyway?  Since prisms are built 
with 2-d coordinates, they have a default orientation and you'll have
to transform the resulting prism somehow even if you could do vtransform.

-- 
These are my opinions.  I do NOT speak for the POV-Team.
The superpatch: http://www2.fwi.com/~parkerr/superpatch/
My other stuff: http://www2.fwi.com/~parkerr/traces.html


Post a reply to this message

From: Bill DeWitt
Subject: Re: Translate a point
Date: 30 Nov 1999 12:20:36
Message: <38440764@news.povray.org>
"Ron Parker" <ron### [at] povrayorg> wrote
>
> Don't you have to build and transform anyway?
>

    I was hoping not. I was going to use the translate values like this:

object {
                MyObject
                texture{TextTetxure}
                translate 0.2
                translate < X_value,Z_value,0 >
//                                   ^^^^^^^^^^^^^
/* the built in value places the bottom of the text at the bottom corner of
the screen. If I could build a prism with these values then the prism would
stay in place even if I changed the camera_right and camera_up or the
camera_angle */

no_shadow translate z scale 0.001
        matrix  <
                  autotext_x.x,autotext_x.y,autotext_x.z,
                  autotext_y.x,autotext_y.y,autotext_y.z,
                  autotext_z.x,autotext_z.y,autotext_z.z,
                  autotext_t.x,autotext_t.y,autotext_t.z
                >
        }/// end object


Post a reply to this message

From: Bill DeWitt
Subject: Re: Translate a point
Date: 30 Nov 1999 16:39:29
Message: <38444411@news.povray.org>
"Ron Parker" <ron### [at] povrayorg> wrote :
>
> Don't you have to build and transform anyway?
>
    I just thought that I might try removing the object{} wrapper from the
information and have the macro return a value that I can extract the x.value
and the z.value from...

    might work.... my brain is too rattled right now to think about it
though...


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.