POV-Ray : Newsgroups : povray.advanced-users : bicubic bezier and hermite patches Server Time
29 Jul 2024 00:23:24 EDT (-0400)
  bicubic bezier and hermite patches (Message 4 to 13 of 13)  
<<< Previous 3 Messages Goto Initial 10 Messages
From: andrel
Subject: Re: bicubic bezier and hermite patches
Date: 9 Mar 2004 12:09:46
Message: <404DFA2B.3090807@hotmail.com>
Sascha Ledinsky wrote:

> andrel wrote:
> 
>> The way I do it is as follows:
>> For both representations I compute the values at the 16
>> points (0,0),(1/3,0),(2/3,0),(1,0),(0,1/3),(1/3,1/3),...(1,1)
>> as a function of the input parameters. This wil give a 16 by
>> 16 matrix.
> 
> 
> 16 x 16 ?
you have 16 points and 16 parameters.
for the bezier the 16 control points and for the
hermite 4 points, 4 x 2 first order derivatives
and 4 second order derivatives.

Therefore: you start with 16 values and do a matrix
multiplication to get 16 other values. So it must
be a 16 by 16 matrix (and if it was not square you
could not invert it).

The 'interpolation' is independent (and the same) for the
x, y, and z coordinates.

Perhaps I should add that I am a bit lazy and have not
done the inversion by hand. I used a program to do
it for me.

	Andrel


Post a reply to this message

From: Dave Matthews
Subject: Re: bicubic bezier and hermite patches
Date: 9 Mar 2004 16:48:41
Message: <404e3bb9$1@news.povray.org>
andrel wrote:

> Perhaps I should add that I am a bit lazy and have not
> done the inversion by hand. I used a program to do
> it for me.
> 
>     Andrel

Come on!  What's happened to people these days?  Why, I remember when I 
used to invert a dozen 16x16 matrices by hand before breakfast! ;-)

(Thanks for the explanation, by the way.  I'd also (amazingly) wondered 
about this a while back, then put it on the shelf, where it got lost 
amongst many other dusty things.)

Dave Matthews


Post a reply to this message

From: andrel
Subject: Re: bicubic bezier and hermite patches
Date: 9 Mar 2004 17:32:55
Message: <404E45E7.3040809@hotmail.com>
Dave Matthews wrote:
> 
> 
> andrel wrote:
> 
>> Perhaps I should add that I am a bit lazy and have not
>> done the inversion by hand. I used a program to do
>> it for me.
>>
>>     Andrel
> 
> 
> Come on!  What's happened to people these days?  Why, I remember when I 
> used to invert a dozen 16x16 matrices by hand before breakfast! ;-)
Well, these the good old days. Although to be honest I think I could
just invert a 6 by 6 by hand before breakfast and even then I would
have made a few sign mistakes.

> (Thanks for the explanation, by the way.  I'd also (amazingly) wondered 
> about this a while back, then put it on the shelf, where it got lost 
> amongst many other dusty things.)

My pleasure. On the subject of Hermite patches: because they are
defined in the cornerpoints, it is trivial to align them. For that 
reason I think they merit perhaps more attention in this group.
On the other hand, as all descriptions of bicubic patches (Bezier,
Hermite and e.g. specifying 16 actual points) result in the same
surface, perhaps a macro package will be sufficient.

	Andrel


Post a reply to this message

From: Sascha Ledinsky
Subject: Re: bicubic bezier and hermite patches
Date: 11 Mar 2004 04:26:26
Message: <405030c2$1@news.povray.org>
I've got to delve into that.
Thanks a lot for your help!
-Sascha


Post a reply to this message

From: andrel
Subject: Re: bicubic bezier and hermite patches
Date: 15 Mar 2004 18:16:39
Message: <4056392C.7040405@hotmail.com>
Have you solved your ploblem yet.

Today in the train I realized that my suggestion
is correct, but that it is too much influenced by
the fact that I do have a program to solve the inverse
of a 16 by 16.

Rethinking it from the perspective of: 'how would
I solve this by hand?' often gives better results.
- there are only three types of points in the (realized)
  patch: corner points (4), side points (8) and center
  poinys (4)
- cornerpoints are in all representations the same, so
  we do not have to apply any interpolation.
- sidepoints are only influenced by the two cornerpoints
  on that side and in case ot the bezier patch the control
  points on that side, and in the hermite case by the
  2 derivatives along the side. All in all we need 4
  numbers only to do the conversion from one representation
  to the other. We use symmetry to apply the same 4 to
  every sidepoint of course.
- For the center points we need only 16 numbers to
  describe the conversions.
All in al we need compute only 4+16 numbers to do
all conversions. so the 16 by 16 matrix is a bit overkill
(I will keep using it because it greatly somplifies
  my code but that is another issue).

   Andrel
Sascha Ledinsky wrote:

> I've got to delve into that.
> Thanks a lot for your help!
> -Sascha


Post a reply to this message

From: Sascha Ledinsky
Subject: Re: bicubic bezier and hermite patches
Date: 17 Mar 2004 06:50:57
Message: <40583ba1$1@news.povray.org>
As I was able to compute all but the four inner bezier controlpoints (or the 
hermite twist vectors) I searched the internet again and found the following 
equation to convert from bezier to hermite (or vice versa):

d^2P/dudv(0,0) = 9(P00-P011+P10-P11)

I'll have to try it, but it looks promising.

Anyway, thanks a lot for your help!
-Sascha


andrel wrote:
> Have you solved your ploblem yet.
> 
> Today in the train I realized that my suggestion
> is correct, but that it is too much influenced by
> the fact that I do have a program to solve the inverse
> of a 16 by 16.
> 
> Rethinking it from the perspective of: 'how would
> I solve this by hand?' often gives better results.
> - there are only three types of points in the (realized)
>  patch: corner points (4), side points (8) and center
>  poinys (4)
> - cornerpoints are in all representations the same, so
>  we do not have to apply any interpolation.
> - sidepoints are only influenced by the two cornerpoints
>  on that side and in case ot the bezier patch the control
>  points on that side, and in the hermite case by the
>  2 derivatives along the side. All in all we need 4
>  numbers only to do the conversion from one representation
>  to the other. We use symmetry to apply the same 4 to
>  every sidepoint of course.
> - For the center points we need only 16 numbers to
>  describe the conversions.
> All in al we need compute only 4+16 numbers to do
> all conversions. so the 16 by 16 matrix is a bit overkill
> (I will keep using it because it greatly somplifies
>  my code but that is another issue).
> 
>   Andrel
> Sascha Ledinsky wrote:
> 
>> I've got to delve into that.
>> Thanks a lot for your help!
>> -Sascha
> 
>


Post a reply to this message

From: andrel
Subject: Re: bicubic bezier and hermite patches
Date: 17 Mar 2004 08:14:36
Message: <40584F11.60102@hotmail.com>
Ok, I wil put the generation of the four 16 by 16 matrices
on my todo list. It may be a few days before I have some time
to do it. If you have access to Matlab it will be even easier,
then I could send you some of my scripts.

Further down on my list will be to create some macros for
the conversion and even further down to create some
tutorial pages on bicubic patches in POV and how to convert
from one representation to the other (unless someone already
did that of course).

	Andrel

Sascha Ledinsky wrote:

> As I was able to compute all but the four inner bezier controlpoints (or 
> the hermite twist vectors) I searched the internet again and found the 
> following equation to convert from bezier to hermite (or vice versa):
> 
> d^2P/dudv(0,0) = 9(P00-P011+P10-P11)
> 
> I'll have to try it, but it looks promising.
> 
> Anyway, thanks a lot for your help!
> -Sascha
> 
> 
> andrel wrote:
> 
>> Have you solved your ploblem yet.
>>
>> Today in the train I realized that my suggestion
>> is correct, but that it is too much influenced by
>> the fact that I do have a program to solve the inverse
>> of a 16 by 16.
>>
>> Rethinking it from the perspective of: 'how would
>> I solve this by hand?' often gives better results.
>> - there are only three types of points in the (realized)
>>  patch: corner points (4), side points (8) and center
>>  poinys (4)
>> - cornerpoints are in all representations the same, so
>>  we do not have to apply any interpolation.
>> - sidepoints are only influenced by the two cornerpoints
>>  on that side and in case ot the bezier patch the control
>>  points on that side, and in the hermite case by the
>>  2 derivatives along the side. All in all we need 4
>>  numbers only to do the conversion from one representation
>>  to the other. We use symmetry to apply the same 4 to
>>  every sidepoint of course.
>> - For the center points we need only 16 numbers to
>>  describe the conversions.
>> All in al we need compute only 4+16 numbers to do
>> all conversions. so the 16 by 16 matrix is a bit overkill
>> (I will keep using it because it greatly somplifies
>>  my code but that is another issue).
>>
>>   Andrel
>> Sascha Ledinsky wrote:
>>
>>> I've got to delve into that.
>>> Thanks a lot for your help!
>>> -Sascha
>>
>>
>>


Post a reply to this message

From: Sascha Ledinsky
Subject: Re: bicubic bezier and hermite patches
Date: 17 Mar 2004 14:18:37
Message: <4058a48d$1@news.povray.org>
I asked because I'm interested in generating (at least G1 continuous) patches 
over a mesh of splines (cubic bezier curves). It should allow for 3-, 4- and 
5-sided patches and different "levels of detail", i.e. two small patches, 
connecting seamlessly to one side of a larger patch.

If case of 4-sided patches the spline-mesh specifies 12 of the 16 
control-points, so I'm looking for a method to compute the missing 4 
control-points. Setting the twist vectors to 0 is fine if the mesh has only 
rectangular patches, but it leads to cracks when joining non-4-sided patches.

I thought that twist vectors might be easier to handle than bezier controlpoints.

Another thing related is splitting non-4-sided patches into 4-sided ones.

-sascha


andrel wrote:
> Ok, I wil put the generation of the four 16 by 16 matrices
> on my todo list. It may be a few days before I have some time
> to do it. If you have access to Matlab it will be even easier,
> then I could send you some of my scripts.
> 
> Further down on my list will be to create some macros for
> the conversion and even further down to create some
> tutorial pages on bicubic patches in POV and how to convert
> from one representation to the other (unless someone already
> did that of course).
> 
>     Andrel
> 
> Sascha Ledinsky wrote:
> 
>> As I was able to compute all but the four inner bezier controlpoints 
>> (or the hermite twist vectors) I searched the internet again and found 
>> the following equation to convert from bezier to hermite (or vice versa):
>>
>> d^2P/dudv(0,0) = 9(P00-P011+P10-P11)
>>
>> I'll have to try it, but it looks promising.
>>
>> Anyway, thanks a lot for your help!
>> -Sascha
>>
>>
>> andrel wrote:
>>
>>> Have you solved your ploblem yet.
>>>
>>> Today in the train I realized that my suggestion
>>> is correct, but that it is too much influenced by
>>> the fact that I do have a program to solve the inverse
>>> of a 16 by 16.
>>>
>>> Rethinking it from the perspective of: 'how would
>>> I solve this by hand?' often gives better results.
>>> - there are only three types of points in the (realized)
>>>  patch: corner points (4), side points (8) and center
>>>  poinys (4)
>>> - cornerpoints are in all representations the same, so
>>>  we do not have to apply any interpolation.
>>> - sidepoints are only influenced by the two cornerpoints
>>>  on that side and in case ot the bezier patch the control
>>>  points on that side, and in the hermite case by the
>>>  2 derivatives along the side. All in all we need 4
>>>  numbers only to do the conversion from one representation
>>>  to the other. We use symmetry to apply the same 4 to
>>>  every sidepoint of course.
>>> - For the center points we need only 16 numbers to
>>>  describe the conversions.
>>> All in al we need compute only 4+16 numbers to do
>>> all conversions. so the 16 by 16 matrix is a bit overkill
>>> (I will keep using it because it greatly somplifies
>>>  my code but that is another issue).
>>>
>>>   Andrel
>>> Sascha Ledinsky wrote:
>>>
>>>> I've got to delve into that.
>>>> Thanks a lot for your help!
>>>> -Sascha
>>>
>>>
>>>
>>>
>


Post a reply to this message

From: andrel
Subject: Re: bicubic bezier and hermite patches
Date: 17 Mar 2004 17:14:23
Message: <4058CD96.7040803@hotmail.com>
Sascha Ledinsky wrote:

> I asked because I'm interested in generating (at least G1 continuous) 
> patches over a mesh of splines (cubic bezier curves). It should allow 
> for 3-, 4- and 5-sided patches and different "levels of detail", i.e. 
> two small patches, connecting seamlessly to one side of a larger patch.
We have had a discussion about 3 and 5 sided polygons a couple
of weeks ago in a p-b-i tread called: Patches for arbitrary topology
shapes. As outlined there, there are some ways of generating n-sided
polygons with cubic sides and control over the tangent, so you can
make smooth surfaces combining them with bicubic patches. These are
not implemented in POV (yet) so you can not use them.

> If case of 4-sided patches the spline-mesh specifies 12 of the 16 
> control-points, so I'm looking for a method to compute the missing 4 
> control-points. 
For first order continuity the inner control points on both
sides of an edge and the control point on the edge should be on a
straight line. That does not completely specify the point, but
it severely restricts it at least.
> Setting the twist vectors to 0 is fine if the mesh has 
> only rectangular patches, but it leads to cracks when joining 
> non-4-sided patches.
> 
> I thought that twist vectors might be easier to handle than bezier 
> controlpoints.
No, especially not if you use non-4-sided patches. The Hermite
formulation is easiest in 4-sided and (I think) very complicated
otherwise.
Bezier is very easy to control. That is in fact why it is so
popular.
One way of creating a smooth surface actually consists of
manupulating only the inner 4 points of a patch and compute
the others by interpolating.
> Another thing related is splitting non-4-sided patches into 4-sided ones.
One obvious way to create a triangle with a bicubic patch is
to make two sides conform to the same cubic equation.
These two sides have 7 points that you will need to compute
from the 4 control points from the adjacent 4-sided patch.
Not very difficult, but there will probably be 'cracks' in
the surface as POV will internally convert them to smooth
triangles and it will not use the same points on both
patches. So this is not a good approach.
Another technique is to fuse the 4 control points on one
side into one point. With this technique you also lose the
symmetry, but you can always divide a triangle into three
smaller ones and restore it.


> -sascha
> 
> 
> andrel wrote:
> 
>> Ok, I wil put the generation of the four 16 by 16 matrices
>> on my todo list. It may be a few days before I have some time
>> to do it. If you have access to Matlab it will be even easier,
>> then I could send you some of my scripts.
>>
>> Further down on my list will be to create some macros for
>> the conversion and even further down to create some
>> tutorial pages on bicubic patches in POV and how to convert
>> from one representation to the other (unless someone already
>> did that of course).
>>
>>     Andrel
>>
>> Sascha Ledinsky wrote:
>>
>>> As I was able to compute all but the four inner bezier controlpoints 
>>> (or the hermite twist vectors) I searched the internet again and 
>>> found the following equation to convert from bezier to hermite (or 
>>> vice versa):
>>>
>>> d^2P/dudv(0,0) = 9(P00-P011+P10-P11)
>>>
>>> I'll have to try it, but it looks promising.
>>>
>>> Anyway, thanks a lot for your help!
>>> -Sascha
>>>
>>>
>>> andrel wrote:
>>>
>>>> Have you solved your ploblem yet.
>>>>
>>>> Today in the train I realized that my suggestion
>>>> is correct, but that it is too much influenced by
>>>> the fact that I do have a program to solve the inverse
>>>> of a 16 by 16.
>>>>
>>>> Rethinking it from the perspective of: 'how would
>>>> I solve this by hand?' often gives better results.
>>>> - there are only three types of points in the (realized)
>>>>  patch: corner points (4), side points (8) and center
>>>>  poinys (4)
>>>> - cornerpoints are in all representations the same, so
>>>>  we do not have to apply any interpolation.
>>>> - sidepoints are only influenced by the two cornerpoints
>>>>  on that side and in case ot the bezier patch the control
>>>>  points on that side, and in the hermite case by the
>>>>  2 derivatives along the side. All in all we need 4
>>>>  numbers only to do the conversion from one representation
>>>>  to the other. We use symmetry to apply the same 4 to
>>>>  every sidepoint of course.
>>>> - For the center points we need only 16 numbers to
>>>>  describe the conversions.
>>>> All in al we need compute only 4+16 numbers to do
>>>> all conversions. so the 16 by 16 matrix is a bit overkill
>>>> (I will keep using it because it greatly somplifies
>>>>  my code but that is another issue).
>>>>
>>>>   Andrel
>>>> Sascha Ledinsky wrote:
>>>>
>>>>> I've got to delve into that.
>>>>> Thanks a lot for your help!
>>>>> -Sascha
>>>>
>>>>
>>>>
>>>>
>>>>
>>


Post a reply to this message

From: andrel
Subject: Re: bicubic bezier and hermite patches
Date: 18 Mar 2004 11:56:01
Message: <4059D478.4020307@hotmail.com>
As promised here are some 16 by 16 matrices.

For the bezier control points (Bxy) I assume that they are numbered
from left to right and from top to bottom (just as POV does)
For the actual points (Axy) I take the values at a grid with 1/3
separation and counting from left to right and from top to bottom
i.e. A11=(0,0),A12=(1/3,0),A13=(2/3,0),A14=(1,0), A21=(0,1/3),
A22=(1/3,1/3),...A44=(1,1)
For the Hermite representation I use H11=u(0,0),H12=du(0,0)/dx,
H13=du(0,0)/dy,H14=d^2u(0,0)/dxdy,H21=u(1,0),...H44=d^2u(1,1)/dxdy

I have scaled all matrices by a factor such that all values
are integers in order not to loose accuracy.

This one is to convert from Bezier control points to grid points
(divide by 729)
So A11=B11, A12=8/27*B11+4/9*B12+2/9*B13+1/27*B14

  729,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
  216, 324, 162,  27,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
   27, 162, 324, 216,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
    0,   0,   0, 729,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
  216,   0,   0,   0, 324,   0,   0,   0, 162,   0,   0,   0,  27,   0, 
   0,   0,
   64,  96,  48,   8,  96, 144,  72,  12,  48,  72,  36,   6,   8,  12, 
   6,   1,
    8,  48,  96,  64,  12,  72, 144,  96,   6,  36,  72,  48,   1,   6, 
  12,   8,
    0,   0,   0, 216,   0,   0,   0, 324,   0,   0,   0, 162,   0,   0, 
   0,  27,
   27,   0,   0,   0, 162,   0,   0,   0, 324,   0,   0,   0, 216,   0, 
   0,   0,
    8,  12,   6,   1,  48,  72,  36,   6,  96, 144,  72,  12,  64,  96, 
  48,   8,
    1,   6,  12,   8,   6,  36,  72,  48,  12,  72, 144,  96,   8,  48, 
  96,  64,
    0,   0,   0,  27,   0,   0,   0, 162,   0,   0,   0, 324,   0,   0, 
   0, 216,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 729,   0, 
   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 216, 324, 
162,  27,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  27, 162, 
324, 216,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0, 729,

This one is to convert from grid points to Bezier control points
(divide by 36)
So B11=A11, B12=-5/6*A11+3*A12-1.5*A13+1/3*A14
   36,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
  -30, 108, -54,  12,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
   12, -54, 108, -30,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
    0,   0,   0,  36,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
  -30,   0,   0,   0, 108,   0,   0,   0, -54,   0,   0,   0,  12,   0, 
   0,   0,
   25, -90,  45, -10, -90, 324,-162,  36,  45,-162,  81, -18, -10,  36, 
-18,   4,
  -10,  45, -90,  25,  36,-162, 324, -90, -18,  81,-162,  45,   4, -18, 
  36, -10,
    0,   0,   0, -30,   0,   0,   0, 108,   0,   0,   0, -54,   0,   0, 
   0,  12,
   12,   0,   0,   0, -54,   0,   0,   0, 108,   0,   0,   0, -30,   0, 
   0,   0,
  -10,  36, -18,   4,  45,-162,  81, -18, -90, 324,-162,  36,  25, -90, 
  45, -10,
    4, -18,  36, -10, -18,  81,-162,  45,  36,-162, 324, -90, -10,  45, 
-90,  25,
    0,   0,   0,  12,   0,   0,   0, -54,   0,   0,   0, 108,   0,   0, 
   0, -30,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  36,   0, 
   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, -30, 108, 
-54,  12,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  12, -54, 
108, -30,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,  36,

This one is to convert from Hermite representation to grid points
(divide by 729)
So A11=H11, A12=20/27*H11+4/27*H12+7/27*H21-2/27*H22
NB A14=H21

  729,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
  540, 108,   0,   0, 189, -54,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
  189,  54,   0,   0, 540,-108,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
    0,   0,   0,   0, 729,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
  540,   0, 108,   0,   0,   0,   0,   0, 189,   0, -54,   0,   0,   0, 
   0,   0,
  400,  80,  80,  16, 140, -40,  28,  -8, 140,  28, -40,  -8,  49, -14, 
-14,   4,
  140,  40,  28,   8, 400, -80,  80, -16,  49,  14, -14,  -4, 140, -28, 
-40,   8,
    0,   0,   0,   0, 540,   0, 108,   0,   0,   0,   0,   0, 189,   0, 
-54,   0,
  189,   0,  54,   0,   0,   0,   0,   0, 540,   0,-108,   0,   0,   0, 
   0,   0,
  140,  28,  40,   8,  49, -14,  14,  -4, 400,  80, -80, -16, 140, -40, 
-28,   8,
   49,  14,  14,   4, 140, -28,  40,  -8, 140,  40, -28,  -8, 400, -80, 
-80,  16,
    0,   0,   0,   0, 189,   0,  54,   0,   0,   0,   0,   0, 540, 
0,-108,   0,
    0,   0,   0,   0,   0,   0,   0,   0, 729,   0,   0,   0,   0,   0, 
   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0, 540, 108,   0,   0, 189, -54, 
   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0, 189,  54,   0,   0, 540,-108, 
   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 729,   0, 
   0,   0,

Finally, this one is to convert from grid points to Hermite
representation (divide by 4)
So H11=A11, H12=-11/2*A11+9*A12-9/2*A13+H14
    4,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
  -22,  36, -18,   4,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
  -22,   0,   0,   0,  36,   0,   0,   0, -18,   0,   0,   0,   4,   0, 
   0,   0,
  121,-198,  99, -22,-198, 324,-162,  36,  99,-162,  81, -18, -22,  36, 
-18,   4,
    0,   0,   0,   4,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
   -4,  18, -36,  22,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   0,
    0,   0,   0, -22,   0,   0,   0,  36,   0,   0,   0, -18,   0,   0, 
   0,   4,
   22, -99, 198,-121, -36, 162,-324, 198,  18, -81, 162, -99,  -4,  18, 
-36,  22,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   4,   0, 
   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, -22,  36, 
-18,   4,
   -4,   0,   0,   0,  18,   0,   0,   0, -36,   0,   0,   0,  22,   0, 
   0,   0,
   22, -36,  18,  -4, -99, 162, -81,  18, 198,-324, 162, -36,-121, 198, 
-99,  22,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
   0,   4,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  -4,  18, 
-36,  22,
    0,   0,   0,  -4,   0,   0,   0,  18,   0,   0,   0, -36,   0,   0, 
   0,  22,
    4, -18,  36, -22, -18,  81,-162,  99,  36,-162, 324,-198, -22, 
99,-198, 121,

I hope the meaning of these grids is clear (and I did not make any
stupid mistakes). I think it is obvious why I should have made some
macro's ;)

	Andrel


Post a reply to this message

<<< Previous 3 Messages Goto Initial 10 Messages

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