POV-Ray : Newsgroups : povray.general : Trace()? Server Time
15 Oct 2026 10:47:12 EDT (-0400)
  Trace()? (Message 1 to 31 of 31)  
From: Mahalis
Subject: Trace()?
Date: 12 Nov 2001 19:08:47
Message: <3bf0648f$1@news.povray.org>
Could anyone explain to me exactly how one uses the trace() function to
detect object collisions? The docs say that 'trace() can be used to detect
the exact point a ray intersects a surface' and then gives a perfectly
incomprehensible (to me at least) example.

--

//Mahalis
camera{location<0,0.25,-2> look_at 0.5*y} #declare T=texture{pigment{crackle
scale 0.5 rotate 90 turbulence 0.75 color_map{[0 rgb 1][0.05 rgb 1][0.1
rgb<1,0.25,1>][0.25 rgbf 1][1 rgbf 1]}} finish{ambient 1}} #declare
c=difference{torus{0.5,0.1 rotate -90*x}box{<0.7,0,0.2>,<-0.7,-0.7,-0.2>}}
merge{object{c translate<0.5,0.5,0>} object{c translate<-0.5,0.5,0>}
cylinder{<1,0.5,0>,<1,0,0>,0.1} cylinder{<-1,0.5,0>,<-1,0,0>,0.1}
cylinder{0.5*y,0,0.1} texture{T}}
--


Post a reply to this message

From: Christoph Hormann
Subject: Re: Trace()?
Date: 13 Nov 2001 01:52:02
Message: <3BF0C313.DE3D24B8@gmx.de>
Mahalis wrote:
> 
> Could anyone explain to me exactly how one uses the trace() function to
> detect object collisions? The docs say that 'trace() can be used to detect
> the exact point a ray intersects a surface' and then gives a perfectly
> incomprehensible (to me at least) example.
> 

You will find une in the insert menu:

// trace function tests for intersection with a specified object

#declare Obj = sphere { 0, 1 }
#declare Norm = <0, 0, 0>;
#declare Start = <0.5, 0.5, 1>;
#declare Pos = trace (
                  Obj,             // object to test
                  Start,           // starting point
                  -z,              // direction
                  Norm );          // normal

// if intersection is found, normal differs from 0
#if (Norm.x != 0 | Norm.y != 0 | Norm.z != 0)
 //...
#end

Christoph

-- 
Christoph Hormann <chr### [at] gmxde>
IsoWood include, radiosity tutorial, TransSkin and other 
things on: http://www.schunter.etc.tu-bs.de/~chris/


Post a reply to this message

From: Warp
Subject: Re: Trace()?
Date: 13 Nov 2001 03:23:48
Message: <3bf0d894@news.povray.org>
Mahalis <don### [at] fakeycom> wrote:
: Could anyone explain to me exactly how one uses the trace() function to
: detect object collisions?

  If you mean that you want to detect if an object collided with another
object, regardless of shape, then that's one of the most difficult things
to do. Tracing can help a bit, but that's only perhaps 0.1% of everything you
need for that.

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From:
Subject: Re: Trace()?
Date: 13 Nov 2001 03:48:17
Message: <ucn1vt8lo1a1ebi08ehvjgv93g1u6r4dvf@4ax.com>
On Mon, 12 Nov 2001 19:10:25 -0500, "Mahalis" <don### [at] fakeycom> wrote:

> Could anyone explain to me exactly how one uses the trace() function to
> detect object collisions? The docs say that 'trace() can be used to detect
> the exact point a ray intersects a surface' and then gives a perfectly
> incomprehensible (to me at least) example.

You are talking about 3.5, right? Check trace.pov and trace2.pov in
POV3.5/scenes/language/ directory.

ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35


Post a reply to this message

From: Mahalis
Subject: Re: Trace()?
Date: 13 Nov 2001 18:11:55
Message: <3bf1a8bb$1@news.povray.org>
I didn't exactly mean 'colliding' as in 'running into'; I meant 'colliding'
as in 'intersecting'.

--

//Mahalis
camera{location<0,0.25,-2> look_at 0.5*y} #declare T=texture{pigment{crackle
scale 0.5 rotate 90 turbulence 0.75 color_map{[0 rgb 1][0.05 rgb 1][0.1
rgb<1,0.25,1>][0.25 rgbf 1][1 rgbf 1]}} finish{ambient 1}} #declare
c=difference{torus{0.5,0.1 rotate -90*x}box{<0.7,0,0.2>,<-0.7,-0.7,-0.2>}}
merge{object{c translate<0.5,0.5,0>} object{c translate<-0.5,0.5,0>}
cylinder{<1,0.5,0>,<1,0,0>,0.1} cylinder{<-1,0.5,0>,<-1,0,0>,0.1}
cylinder{0.5*y,0,0.1} texture{T}}
--


"Warp" <war### [at] tagpovrayorg> wrote in message
news:3bf0d894@news.povray.org...
> Mahalis <don### [at] fakeycom> wrote:
> : Could anyone explain to me exactly how one uses the trace() function to
> : detect object collisions?
>
>   If you mean that you want to detect if an object collided with another
> object, regardless of shape, then that's one of the most difficult things
> to do. Tracing can help a bit, but that's only perhaps 0.1% of everything
you
> need for that.
>
> --
> #macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
> rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
> ],13),8)-3,10>#end blob{N(array[6]{11117333955,
> 7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From: Redbeard
Subject: Re: Trace()?
Date: 13 Nov 2001 23:07:06
Message: <3bf1edea$1@news.povray.org>
"Warp" <war### [at] tagpovrayorg> wrote in message news:3bf0d894@news.povray.org...
> Mahalis <don### [at] fakeycom> wrote:
> : Could anyone explain to me exactly how one uses the trace() function to
> : detect object collisions?
>
>   If you mean that you want to detect if an object collided with another
> object, regardless of shape, then that's one of the most difficult things
> to do. Tracing can help a bit, but that's only perhaps 0.1% of everything you
> need for that.
>
This reminds me, I just thought of something for my 4.0 wishlist.  A function
like inside that works for objects instead of vectors, as in:

    #declare A = sphere { 0, 1 }
    #declare B = sphere { 0.5*x,1 }
    #if (intersect(A,B)) #debug "A intersects B\n" #end

That would make collision detection *much* easier.

Hmmm... is this always guaranteed to work?
    #include "stdinc.inc"
    #include "shapes.inc"

    #declare A = sphere { 0, 1 }
    #declare B = box { 2, 3 }
    #declare Min = x*0;
    #declare Max = x*0;
    Extents(intersection { object { A } object { B } }, Min, Max)
    #if (!VEq(Max,<10000000000,10000000000,10000000000>)) #debug "A intersects
B\n"
    #else #debug "A does not intersect B\n"
    #end

    #debug concat(VStr(Min), "  ", VStr(Max))

I would suppose it depends on what POV-Ray assigns as the Min/Max for a
degenerate bounding box.  And if the DBB is always possible to detect.

It appears to work with primatives and small CSGs... but I could be wrong.
Haven't tested it much.

Any thoughts?

Michael

--
#macro M(D)#local J=strlen(D);#local _=""#while(J>0)#local _=concat(_,substr(D
,J,1))#local J=J-1;#end _#end sphere{z*9,5pigment{rgb x}}#macro N(D,J)text{ttf
"timrom.ttf"M(D)1,0 translate-J}#end#macro O(E,K)#local _=N(E,K)light_source{-
z*9rgb 1projected_through{_}}#end O("leahciM"<1.6,-.3.9>)O("nosnhoJ"<1.6.9.9>)


Post a reply to this message

From: Warp
Subject: Re: Trace()?
Date: 14 Nov 2001 01:33:29
Message: <3bf21039@news.povray.org>
Mahalis <don### [at] fakeycom> wrote:
: I didn't exactly mean 'colliding' as in 'running into'; I meant 'colliding'
: as in 'intersecting'.

  The problem is still exactly the same and exactly as difficult.

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From: Warp
Subject: Re: Trace()?
Date: 14 Nov 2001 01:36:41
Message: <3bf210f9@news.povray.org>
Redbeard <red### [at] wvadelphianet> wrote:
: This reminds me, I just thought of something for my 4.0 wishlist.  A function
: like inside that works for objects instead of vectors, as in:

:     #declare A = sphere { 0, 1 }
:     #declare B = sphere { 0.5*x,1 }
:     #if (intersect(A,B)) #debug "A intersects B\n" #end

  As I said, that's extremely difficult to implement for any given object.
Of course it's trivial for spheres, but if you want to support any object,
you are approximating the impossible.

:     Extents(intersection { object { A } object { B } }, Min, Max)

  Note that even if the bounding boxes of the objects intersect, that doesn't
mean that the objects themselves do.

: It appears to work with primatives

  Again that word...

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From: Ken
Subject: Re: Trace()?
Date: 14 Nov 2001 01:47:48
Message: <3BF213CD.3CBDBBC7@pacbell.net>
Warp wrote:

> : It appears to work with primatives
> 
>   Again that word...

I'll teach them to stop using "that" word if you stop using "drastical" :)

-- 
Ken Tyler


Post a reply to this message

From: Warp
Subject: Re: Trace()?
Date: 14 Nov 2001 02:00:58
Message: <3bf216a9@news.povray.org>
Ken <tyl### [at] pacbellnet> wrote:
: I'll teach them to stop using "that" word if you stop using "drastical" :)

  Some english words confuse me a lot.
  The word "drastically" exists. By logic, it would come from the word
"drastical" (drastical + ly = drastically).
  But no, it comes from the word "drastic".
  By reverse logic, it would mean that drastic + ly = drasticly.
  But no, it's drastic + ly = drasticALly.
  It makes no sense.

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From: Ken
Subject: Re: Trace()?
Date: 14 Nov 2001 02:11:55
Message: <3BF21972.FCD8F3A3@pacbell.net>
Warp wrote:
> 
> Ken <tyl### [at] pacbellnet> wrote:
> : I'll teach them to stop using "that" word if you stop using "drastical" :)
> 
>   Some english words confuse me a lot.
>   The word "drastically" exists. By logic, it would come from the word
> "drastical" (drastical + ly = drastically).
>   But no, it comes from the word "drastic".
>   By reverse logic, it would mean that drastic + ly = drasticly.
>   But no, it's drastic + ly = drasticALly.
>   It makes no sense.

And primitive is often pronounced prim.a.tive so it is somewhat understandable
that people will spell it like they speak it. It is a common problem with the
english language and with those who try to spell it like they speak it.

Followup-To: p.o-t

-- 
Ken Tyler


Post a reply to this message

From: pan
Subject: Re: Trace()?
Date: 14 Nov 2001 02:45:10
Message: <3bf22106@news.povray.org>
"Warp" <war### [at] tagpovrayorg> wrote in message news:3bf216a9@news.povray.org...
> Ken <tyl### [at] pacbellnet> wrote:
> : I'll teach them to stop using "that" word if you stop using "drastical" :)
>
>   Some english words confuse me a lot.
>   The word "drastically" exists. By logic, it would come from the word
> "drastical" (drastical + ly = drastically).
>   But no, it comes from the word "drastic".
>   By reverse logic, it would mean that drastic + ly = drasticly.
>   But no, it's drastic + ly = drasticALly.
>   It makes no sense.

Sure it does.

It's 'drastic' + '- ally'.
'Drastic' is an adjective. Adding the suffix '-ally' makes it an adverb.

A 'drastical' (or drasticle) would be a neologistic noun representing
that which is a particle of drasticness.

'-ally' is the suffix used to make an adverb from an adjective that
ends in '-ic' when there is no '-ical' form.

Incidentally (and not accidentally), these grammaricals arose from
borrowed Greek. (See? There is no 'incidentical' or 'accidentical' -
those words sound wrong, eh?).

"English makes sense except when it doesn't".

Just to round things off -

'Identical" is an adjective. The word ends in '-ical', The adverb
formed from 'identical' is 'identically'. In this case it is the suffix '-ly'
added to the '-ical' adjective to make the adverb. Sometimes it is hard to
tell if the adverbial suffix appended to an adjective is '-ly' or '-ally'.

So, why is drastic - 'drastic' and identical is not 'identic' ?  I don't know,
it's all Greek to me. What's worse is that 'identic' exists as an adjective, but
means something completely different than 'identical'. ('identic' is a
diplomatic
term used diplomatically by diplomats in a diplomatical manner.)

These -ics, -icals, -lys, and -allys are everywhere.

It almost seems conspiratorical.


Post a reply to this message

From: Warp
Subject: Re: Trace()?
Date: 14 Nov 2001 03:43:42
Message: <3bf22ebd@news.povray.org>
pan### [at] syixcom wrote:
: "English makes sense except when it doesn't".

  That sums it up. :)

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From:
Subject: Re: Trace()?
Date: 14 Nov 2001 05:37:41
Message: <ncd4vt4iprte5bjhvfnmbbo4pq222vj6b4@4ax.com>
On Tue, 13 Nov 2001 23:16:02 -0500, "Redbeard" <red### [at] wvadelphianet> wrote:
> Hmmm... is this always guaranteed to work?

of course not
just check this with
    #declare A = plane { x, 1 }
    #declare B = plane { -x, 0 }

I can propose rather such macros (below). It is not tested hardly but seems
work. It could be extended with another level - sampled value for random points
(in bound) of function{pattern{object{I}}}.

I wonder what should be result for plane{x,1} and plane{x,0} ?
Your and mine returns "no intersection", but is it true ?

// A - first object
// B - second object
// S - sampling level
#macro Colision_Detection(A,B,S)
  #local I=intersection{object{A}object{B}};
  #declare Min=min_extent(I);
  #declare Max=max_extent(I);
  #local K=0;
  #local Found=Sample_Detection(
    <Min.x-.1,Min.y,Min.z>,
    <Min.x-.1,Max.y,Min.z>,
    <Min.x-.1,Max.y,Max.z>,
    <Min.x-.1,Min.y,Max.z>,
    x,S-1);
  #if(!Found)
    #local Found=Sample_Detection(
    <Min.x,Min.y-.1,Min.z>,
    <Max.x,Min.y-.1,Min.z>,
    <Max.x,Min.y-.1,Max.z>,
    <Min.x,Min.y-.1,Max.z>,
    y,S-1);
  #end
  #if(!Found)
    #local Found=Sample_Detection(
    <Min.x,Min.y,Min.z-.1>,
    <Min.x,Max.y,Min.z-.1>,
    <Max.x,Max.y,Min.z-.1>,
    <Max.x,Min.y,Min.z-.1>,
    z,S-1);
  #end
  #debug concat("Sampling called ",str(K,0,0)," times\n")
  (Found?true:false)
#end

// check ray sended from center of quad <P1,P2,P3,P4> in direction D
// if level S>0 then send subsample
#macro Sample_Detection(P1,P2,P3,P4,D,S)
  #local N=y;
  #local C=(P1-P3)/2;
  #local T=trace(I,C,D,N);
  #if(!(N.x=0 & N.y=0 & N.z=0))
    #local Found=true;
  #else
    #if(S<0)
      #local Found=false;
    #else
      #local Found=Sample_Detection(P1,(P1+P2)/2,C,(P1+P4)/2,D,S-1);
      #if(!Found)
        #local Found=Sample_Detection((P1+P2)/2,P2,(P2+P3)/2,C,D,S-1);
      #end
      #if(!Found)
        #local Found=Sample_Detection(C,(P2+P3)/2,P3,(P3+P4)/2,D,S-1);
      #end
      #if(!Found)
        #local Found=Sample_Detection((P1+P4)/2,C,(P3+P4)/2,P4,D,S-1);
      #end
    #end
  #end
  #declare K=K+1;
  (Found?true:false)
#end

ABX
--
#declare _=function(a,b,x){((a^2)+(b^2))^.5-x}#default {pigment{color rgb 1}}
union{plane{y,-3}plane{-x,-3}finish{reflection 1 ambient 0}}isosurface{ //ABX
function{_(x-2,y,1)|_((x+y)*.7,z,.1)|_((x+y+2)*.7,z,.1)|_(x/2+y*.8+1.5,z,.1)}
contained_by{box{<0,-3,-.1>,<3,0,.1>}}translate z*15finish{ambient 1}}//POV35


Post a reply to this message

From: Mahalis
Subject: Re: Trace()?
Date: 14 Nov 2001 07:08:04
Message: <3bf25ea4$1@news.povray.org>
That's English for ya... ;-)

--

//Mahalis
camera{location<0,0.25,-2> look_at 0.5*y} #declare T=texture{pigment{crackle
scale 0.5 rotate 90 turbulence 0.75 color_map{[0 rgb 1][0.05 rgb 1][0.1
rgb<1,0.25,1>][0.25 rgbf 1][1 rgbf 1]}} finish{ambient 1}} #declare
c=difference{torus{0.5,0.1 rotate -90*x}box{<0.7,0,0.2>,<-0.7,-0.7,-0.2>}}
merge{object{c translate<0.5,0.5,0>} object{c translate<-0.5,0.5,0>}
cylinder{<1,0.5,0>,<1,0,0>,0.1} cylinder{<-1,0.5,0>,<-1,0,0>,0.1}
cylinder{0.5*y,0,0.1} texture{T}}
--


>   But no, it's drastic + ly = drasticALly.


Post a reply to this message

From: Bill DeWitt
Subject: Re: Trace()?
Date: 14 Nov 2001 08:55:22
Message: <3bf277ca$1@news.povray.org>
"Mahalis" <don### [at] fakeycom> wrote :
>
> That's English for ya... ;-)

    Problem is... that's
French-German-Spanish-Latin-Greekitalianswedishdutchrussianhebrewjapaneseame
ricanindianetc for ya...

    If we had one history or origin or if it were made instead of grown, it
would not be so confusing.


Post a reply to this message

From: Redbeard
Subject: Re: Trace()?
Date: 14 Nov 2001 09:04:46
Message: <3bf279fe$1@news.povray.org>
"Warp" <war### [at] tagpovrayorg> wrote in message news:3bf210f9@news.povray.org...
> Redbeard <red### [at] wvadelphianet> wrote:
> : It appears to work with primatives
>
>   Again that word...
Ooops.  Doesn't even look right to my eye.  But the fingers move faster than the
brain, sometimes.


Post a reply to this message

From: Arthur Flint
Subject: Re: Trace()?
Date: 15 Nov 2001 05:51:38
Message: <Xns915A3B91EED35mrartchesapeakenet@204.213.191.226>
Bill DeWitt scribis news:3bf277ca$1@news.povray.org:

>     If we had one history or origin or if it were made instead of
>     grown, it 
> would not be so confusing.
> 

Try a "made" language then. Several exist. Anything from Klingon to 
Atlantian. There are several clubs that for the "speaking" population to 
get together at/with and have fun.

My favorite is Esperanto. Is a small group here in D.C. that My daughter 
and I go to. My daughter is at the "conversation" level, but I am at the 
"scratch my head and don't say anything" level. The day will come when I 
will be able to speak with confidance, but that is a long ways away.
-- 
Gis posta, Arto.


Post a reply to this message

From: Nekar Xenos
Subject: Re: Trace()?
Date: 15 Nov 2001 05:56:51
Message: <3bf39f73@news.povray.org>
"Arthur Flint" <mra### [at] chesapeakenet> wrote in message
news:Xns### [at] 204213191226...
> Bill DeWitt scribis news:3bf277ca$1@news.povray.org:
>
> >     If we had one history or origin or if it were made instead of
> >     grown, it
> > would not be so confusing.
> >
>
> Try a "made" language then. Several exist. Anything from Klingon to
> Atlantian. There are several clubs that for the "speaking" population to
> get together at/with and have fun.
>
> My favorite is Esperanto. Is a small group here in D.C. that My daughter
> and I go to. My daughter is at the "conversation" level, but I am at the
> "scratch my head and don't say anything" level. The day will come when I
> will be able to speak with confidance, but that is a long ways away.

I'd love to get to conversation level with ancient Greek but I don't know anyone
else that speaks the language...

- Nekar


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.286 / Virus Database: 152 - Release Date: 2001/10/09


Post a reply to this message

From: Redbeard
Subject: Re: Trace()?
Date: 15 Nov 2001 08:03:44
Message: <3bf3bd30$1@news.povray.org>
"W³odzimierz ABX Skiba" <abx### [at] babilonorg> wrote in message
news:ncd4vt4iprte5bjhvfnmbbo4pq222vj6b4@4ax.com...
> On Tue, 13 Nov 2001 23:16:02 -0500, "Redbeard" <red### [at] wvadelphianet>
wrote:
> > Hmmm... is this always guaranteed to work?
>
> of course not

Yeah, I didn't figure it would.

Michael


Post a reply to this message

From: Jon A  Cruz
Subject: Re: Trace()?
Date: 15 Nov 2001 11:49:23
Message: <3BF3F1A7.D25648DA@geocities.com>
Nekar Xenos wrote:

> I'd love to get to conversation level with ancient Greek but I don't know anyone
> else that speaks the language...

Ask around of the staff at some Protestant churches in your area. At least here in
the states that is a language usually learned in seminary.

--
Jon A. Cruz
http://www.geocities.com/joncruz/action.html


Post a reply to this message

From: Jon A  Cruz
Subject: Re: Trace()?
Date: 15 Nov 2001 11:50:47
Message: <3BF3F1FB.5C9F9FB7@geocities.com>
Arthur Flint wrote:

> Bill DeWitt scribis news:3bf277ca$1@news.povray.org:
>
> >     If we had one history or origin or if it were made instead of
> >     grown, it
> > would not be so confusing.
> >
>
> Try a "made" language then. Several exist. Anything from Klingon to
> Atlantian. There are several clubs that for the "speaking" population to
> get together at/with and have fun.

You forgot to mention the languages that Tolkien made. His history for them
is quite interesting also.


--
Jon A. Cruz
http://www.geocities.com/joncruz/action.html


Post a reply to this message

From: Bill DeWitt
Subject: Re: Trace()?
Date: 15 Nov 2001 11:58:22
Message: <3bf3f42e$1@news.povray.org>
"Arthur Flint" <mra### [at] chesapeakenet> wrote :
>
> My favorite is Esperanto.

    That's on my list. I hear it is fairly simple to learn if you are a
Latin-based native speaker.


Post a reply to this message

From: Arthur Flint
Subject: Re: Trace()?
Date: 15 Nov 2001 20:44:25
Message: <Xns915AD2F00B9FCmrartchesapeakenet@204.213.191.226>
Bill DeWitt scribis news:3bf3f42e$1@news.povray.org:

> 
> "Arthur Flint" <mra### [at] chesapeakenet> wrote :
>>
>> My favorite is Esperanto.
> 
>     That's on my list. I hear it is fairly simple to learn if you are a
> Latin-based native speaker.
> 
Here is a translation (of sorts) of your comment.
Tio estas je mia listo. Mi audas ke Esperanto estas falica por lerni,se vi 
estas Latinderivite indig^ena parolulo.

The language uses an accusitive case for the recipent of the action. So in 
one instance " a male dog" could be spelled "hundo" and in another, 
"hundon". Means you have to listen verry carefully to how things are said 
to catch the meaning.

-- 
G^is poste, Arto.
(until later, Art)


Post a reply to this message

From: Bill DeWitt
Subject: Re: Trace()?
Date: 15 Nov 2001 22:52:49
Message: <3bf48d91$1@news.povray.org>
"Arthur Flint" <mra### [at] chesapeakenet> wrote in message
news:Xns### [at] 204213191226...
> Bill DeWitt scribis news:3bf3f42e$1@news.povray.org:
>
> >
> > "Arthur Flint" <mra### [at] chesapeakenet> wrote :
> >>
> >> My favorite is Esperanto.
> >
> >     That's on my list. I hear it is fairly simple to learn if you are a
> > Latin-based native speaker.
> >
> Here is a translation (of sorts) of your comment.
> Tio estas je mia listo. Mi audas ke Esperanto estas falica por lerni,se vi
> estas Latinderivite indig^ena parolulo.

    Well, they gotta fix that ^ business... Other than that, as is true of
french italian and spanish, you can pick out root words and get most of the
meaning.

> --
> G^is poste, Arto.
> (until later, Art)


Post a reply to this message

From: Peter Popov
Subject: Re: Trace()?
Date: 16 Nov 2001 00:36:18
Message: <i899vtgbsahg9ct49iq0asrahjphpmo8na@4ax.com>
On 15 Nov 2001 20:44:25 -0500, Arthur Flint <mra### [at] chesapeakenet>
wrote:

>Tio estas je mia listo. Mi audas ke Esperanto estas falica por lerni,se vi 
>estas Latinderivite indig^ena parolulo.

A strange mixture of Spanish-, Italian-, Romanian- and Latin-like
ingredients. All Roman languages. BTW should "Latinderivite" really be
a single word?


Peter Popov ICQ : 15002700
Personal e-mail : pet### [at] vipbg
TAG      e-mail : pet### [at] tagpovrayorg


Post a reply to this message

From: Arthur Flint
Subject: Re: Trace()?
Date: 16 Nov 2001 03:59:47
Message: <Xns915B289E4AA1Amrartchesapeakenet@204.213.191.226>
Peter Popov scribis news:i899vtgbsahg9ct49iq0asrahjphpmo8na@4ax.com:
> A strange mixture of Spanish-, Italian-, Romanian- and Latin-like
> ingredients. 
All true, with some German and Greek roots in there too.

>All Roman languages. BTW should "Latinderivite" really be a single word?
It could well be as we wern't all too sure how to construct that one. Some 
words are constructed by concatanation.
i.e. Mang^o "food" + c^ambro "room" = mang^oc^ambro "dinning room"

-- 
Gis posta, Arto.


Post a reply to this message

From: Arthur Flint
Subject: Re: Trace()?
Date: 16 Nov 2001 04:04:35
Message: <Xns915B296E9A1C3mrartchesapeakenet@204.213.191.226>
Bill DeWitt scribis news:3bf48d91$1@news.povray.org:
>     Well, they gotta fix that ^ business... Other than that, as is true
>     of french italian and spanish, you can pick out root words and get     
>     most of the meaning.
> 
It might look better if you could see the characters in proper format.
The "^" should be over the character that it comes after. Until all the 
world lives with unicode, that is the best I could do. There is c^, g^, h^, 
s^, and a u with a small symbole over it.



-- 
Gis posta, Arto.


Post a reply to this message

From: Bill DeWitt
Subject: Re: Trace()?
Date: 16 Nov 2001 08:04:29
Message: <3bf50edd@news.povray.org>
Follow-up set

"Arthur Flint" <mra### [at] chesapeakenet> wrote in message
news:Xns### [at] 204213191226...
> Bill DeWitt scribis news:3bf48d91$1@news.povray.org:
> >     Well, they gotta fix that ^ business... Other than that, as is true
> >     of french italian and spanish, you can pick out root words and get
> >     most of the meaning.
> >
> It might look better if you could see the characters in proper format.
> The "^" should be over the character that it comes after. Until all the
> world lives with unicode, that is the best I could do. There is c^, g^,
h^,
> s^, and a u with a small symbole over it.

    I went through and set up two letter combinations for every phoneme I
could find and pronounce (for my own constructed language), using standard
American English character pronunciations. It seems like the folk who
developed Esperanto could have done something similar.


Post a reply to this message

From: Mike Williams
Subject: Re: Trace()?
Date: 22 Nov 2001 13:01:01
Message: <yceboGAMPH$7Ew7m@econym.demon.co.uk>
Wasn't it Mahalis who wrote:

>Could anyone explain to me exactly how one uses the trace() function to
>detect object collisions? The docs say that 'trace() can be used to detect
>the exact point a ray intersects a surface' and then gives a perfectly
>incomprehensible (to me at least) example.

It occurred to me that it ought to be possible to detect whether two
convex objects had collided by tracing in both directions along the line
that joins their centres.

Consider two convex objects that are not touching. As we look along the
line that joins their centres we encounter the significant points in the
following order:-
        Centre of object 1
        Surface of object 1
        Surface of object 2
        Centre of object 2

If the objects are moved closer so that they intersect, then the order
changes to
        Centre of object 1
        Surface of object 2
        Surface of object 1
        Centre of object 2

(With concave objects all bets are off. It's possible for two concave
objects to touch at the ends while there is still a gap between them
along the line that joins their centres).


I came up with code that looks like this

// trace object2 from the centre of object 1 and vice verca
#declare Surface2 = trace(Object2, Centre1, (Centre2-Centre1));
#declare Surface1 = trace(Object1, Centre2, (Centre1-Centre2));

// The objects intersect if Surface2 is nearer to Centre1
// than Surface1 is
#if (vlength(Surface2-Centre1) < vlength(Surface1-Centre1))
  #debug "They intersect\n"
#else
  #debug "They don't\n"
#end

But that code can sometimes give the wrong answer if the objects overlap
to such an extent that the centre of one lies inside the surface of the
other. For example, if the centres are very close the order might be
        Surface of Object 1
        Centre of Object 1
        Centre of Object 2
        Surface of Object 2
and the surfaces could be at any distance.



I think that this works

// trace object2 from the centre of object 1 and vice verca
#declare Surface2 = trace(Object2, Centre1, (Centre2-Centre1));
#declare Surface1 = trace(Object1, Centre2, (Centre1-Centre2));

// The objects intersect if the centre-centre distance
// is less than the sum of the centre-surface distances
#if ((vlength(Centre2-Centre1)  < (vlength(Surface1-Centre1) +     
     vlength(Surface2-Centre2)))) 
  #debug "They intersect\n"
#else
  #debug "They don't\n"
#end

-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

From: Dave Dunn
Subject: Re: Trace()?
Date: 22 Nov 2001 13:05:03
Message: <3BFD3E3E.FC0DCA3E@aol.com>
Mike Williams wrote:

>
> (With concave objects all bets are off. It's possible for two concave
> objects to touch at the ends while there is still a gap between them
> along the line that joins their centres).

I'm wondering, with the centers (Am. sp.) known, if you might not be able to
use max_extents to learn where the outer edge of the object lies...


Post a reply to this message

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