| | | | |
In lugnet.cad.dat.parts, Ross Crawford wrote:
|
|
If the top points are A1-5 and the bottom points are B1-5, keep the A2-B1,
A3-B2 as currently, but instead of A2-B2 etc, use A3-B1, A4-B2, etc. I think
that would make all the edges inside curves instead of outside, and
eliminate the need for conditionals. But Im not sure. And I dunno if it
would look right.
|
OK, I tried it and realise now that it doesnt solve the problem at all, just
moves the outside curves to a different spot. I think Don is right, a more
complex torus-like curve is necessary to represent it properly.
|
Im pretty sure thats going to be the problem with *any* partition of this
surface into polygons. Having a mathematical description of the surface would
be good, because then we could potentially create a primitive for the surface,
and rendering programs could substitute a smooth-curve construct for the
primitive.
In the LDraw code, I believe the appropriate fix will be to replace the current
coarse mesh with a mesh thats fine enough so that the potential error (ie, the
distance from the ideal brick surface to the LDraw conditional edge) is less
than 1 pixel (at reasonable magnifications). Im not sure how fine such a mesh
will be, we might have to settle for coming within a couple of pixels...
Steve
| | | | | | | | | | | | | In lugnet.cad.dat.parts, Steve Bliss wrote:
|
In lugnet.cad.dat.parts, Ross Crawford wrote:
|
|
If the top points are A1-5 and the bottom points are B1-5, keep
the A2-B1, A3-B2 as currently, but instead of A2-B2 etc, use
A3-B1, A4-B2, etc. I think that would make all the edges inside
curves instead of outside, and eliminate the need for
conditionals. But Im not sure. And I dunno if it would look
right.
|
OK, I tried it and realise now that it doesnt solve the problem at
all, just moves the outside curves to a different spot. I think Don
is right, a more complex torus-like curve is necessary to represent
it properly.
|
Im pretty sure thats going to be the problem with *any* partition
of this surface into polygons. Having a mathematical description of
the surface would be good, because then we could potentially create
a primitive for the surface, and rendering programs could substitute
a smooth-curve construct for the primitive.
In the LDraw code, I believe the appropriate fix will be to replace
the current coarse mesh with a mesh thats fine enough so that the
potential error (ie, the distance from the ideal brick surface to
the LDraw conditional edge) is less than 1 pixel (at reasonable
magnifications). Im not sure how fine such a mesh will be, we
might have to settle for coming within a couple of pixels...
|
Oh, I dont know about that 1 pixel business. The problem with the
surface as its currently written, is that it flip-flops between
convex and concave every at every triangle. But if you ignore the
triangles and spin the surface around a bit, it really looks like
an inner torus surface oriented diagonally. We know how to do that
without making a lumpy mess of it. The challenge is in getting
a diamond shaped slice of torus instead of a rectangular slice.
Enjoy,
Don
| | | | | | | | | | | | | | | | | | In lugnet.cad.dat.parts, Don Heyse wrote:
|
Oh, I dont know about that 1 pixel business. The problem with the
surface as its currently written, is that it flip-flops between
convex and concave every at every triangle. But if you ignore the
triangles and spin the surface around a bit, it really looks like
an inner torus surface oriented diagonally. We know how to do that
without making a lumpy mess of it. The challenge is in getting
a diamond shaped slice of torus instead of a rectangular slice.
|
I think the key difference is the twisted nature of this surface. I think the
twist makes it impossible to partition the surface into polygons without having
a mix of convex and concave seams. Id like to be proven wrong.
I dont have one of the pieces handy, Ill have to look at some tonight, at
home.
Steve
| | | | | | | | | | | | | | | | In lugnet.cad.dat.parts, Steve Bliss wrote:
> I'm pretty sure that's going to be the problem with *any* partition of this
> surface into polygons. Having a mathematical description of the surface would
> be good, because then we could potentially create a primitive for the surface,
> and rendering programs could substitute a smooth-curve construct for the
> primitive.
I have made a 43720.inc for the test of the coming L3PPARTS.
The mathematical description of the surface is:
80x + 40y + yz = 0
and I have used the POV primitive quadric:
quadric {
<0,0,0>, <0,0,1>, <80,40,0>, 0
clipped_by { box { <-20,0,-40>, <0,20,40> } }
}
/Lars
| | | | | | | | | | | | | | | | |
| |
| In lugnet.cad.dat.parts, Lars C. Hassing wrote:
> In lugnet.cad.dat.parts, Steve Bliss wrote:
> > I'm pretty sure that's going to be the problem with *any* partition of this
> > surface into polygons. Having a mathematical description of the surface would
> > be good, because then we could potentially create a primitive for the surface,
> > and rendering programs could substitute a smooth-curve construct for the
> > primitive.
>
> I have made a 43720.inc for the test of the coming L3PPARTS.
> The mathematical description of the surface is:
> 80x + 40y + yz = 0
> and I have used the POV primitive quadric:
> quadric {
> <0,0,0>, <0,0,1>, <80,40,0>, 0
> clipped_by { box { <-20,0,-40>, <0,20,40> } }
> }
Looks good.
Should we create a new primitive with the next dimensions:?
2 24 0 0 1 0 1 1
2 24 1 0 -1 0 1 -1
2 24 0 0 1 1 0 -1
2 24 0 1 1 0 1 -1
and a POV-quadric version in the coming L3PPARTS.
As the outer twisted surface of the parts with this shape are
pretty the same size, the inner surface differs among these parts
(in 43720/43721 the inner surface has a z-size of 72,
in 45407 the inner suface has a z-size of 76).
With a general primitive it can be stretched to any dimension.
Niels Karsdorp
| | | | | | | | | | | | | | | | | |
| |
| In lugnet.cad.dat.parts, Niels Karsdorp wrote:
> In lugnet.cad.dat.parts, Lars C. Hassing wrote:
> > In lugnet.cad.dat.parts, Steve Bliss wrote:
> > > I'm pretty sure that's going to be the problem with *any* partition
> > > of this surface into polygons. Having a mathematical description
> > > of the surface would be good, because then we could potentially
> > > create a primitive for the surface, and rendering programs could
> > > substitute a smooth-curve construct for the primitive.
> >
> > I have made a 43720.inc for the test of the coming L3PPARTS.
> > The mathematical description of the surface is:
> > 80x + 40y + yz = 0
> > and I have used the POV primitive quadric:
> > quadric {
> > <0,0,0>, <0,0,1>, <80,40,0>, 0
> > clipped_by { box { <-20,0,-40>, <0,20,40> } }
> > }
>
> Looks good.
> Should we create a new primitive with the next dimensions:?
> 2 24 0 0 1 0 1 1
> 2 24 1 0 -1 0 1 -1
> 2 24 0 0 1 1 0 -1
> 2 24 0 1 1 0 1 -1
> and a POV-quadric version in the coming L3PPARTS.
>
> As the outer twisted surface of the parts with this shape are
> pretty the same size, the inner surface differs among these parts
> (in 43720/43721 the inner surface has a z-size of 72,
> in 45407 the inner suface has a z-size of 76).
> With a general primitive it can be stretched to any dimension.
Nice, I like the idea of the quadric primitive, but we want to
add some curvature to the LDRAW version, right? I fiddled a bit
with the part a few days ago, starting with the two triangles
outlined by your primitive. I didn't exactly finish, but I think
if you take this and make a surface that follows the green X and
also follows the red stripes, you end up with something pretty
decent where the optional lines work.
Don
0 Wedge 4 x 2 Sloped Left
0 Name: 43721.dat
0 Author: Donald Sutter
0 LDRAW_ORG Part UPDATE 2004-04
0 Unofficial hack for testing purposes.
0
1 16 -10 0 30 0 0 1 0 1 0 -1 0 0 stud.dat
1 16 -10 0 10 0 0 1 0 1 0 -1 0 0 stud.dat
1 16 -10 0 -10 0 0 1 0 1 0 -1 0 0 stud.dat
1 16 -10 0 -30 0 0 1 0 1 0 -1 0 0 stud.dat
0
2 4 5 20 -20 0 0 -20
2 4 10 20 0 0 0 0
2 4 15 20 20 0 0 20
0
2 2 0 20 -40 3.75 15 -20
2 2 3.75 15 -20 5 10 0
2 2 5 10 0 3.75 5 20
2 2 3.75 5 20 0 0 40
0
2 2 0 0 -40 1.25 5 -20
2 2 1.25 5 -20 5 10 0
2 2 5 10 0 11.25 15 20
2 2 11.25 15 20 20 20 40
0
3 46 0 0 -40 0 20 -40 3.75 15 -20
3 46 0 0 -40 3.75 15 -20 5 10 0
3 46 0 0 -40 5 10 0 3.75 5 20
3 46 0 0 -40 3.75 5 20 0 0 40
0
3 45 20 20 40 0 20 -40 3.75 15 -20
3 45 20 20 40 3.75 15 -20 5 10 0
3 45 20 20 40 5 10 0 3.75 5 20
3 45 20 20 40 3.75 5 20 0 0 40
0
1 16 0 0 0 -1 0 0 0 1 0 0 0 1 s\43720s01.dat
0
| | | | | | | | | | | | | | | | | | | | |
| |
| In lugnet.cad.dat.parts, Don Heyse wrote:
> Nice, I like the idea of the quadric primitive, but we want to
> add some curvature to the LDRAW version, right? I fiddled a bit
> with the part a few days ago, starting with the two triangles
> outlined by your primitive. I didn't exactly finish, but I think
> if you take this and make a surface that follows the green X and
> also follows the red stripes, you end up with something pretty
> decent where the optional lines work.
>
> Don
>
>
>
>
> 0 Wedge 4 x 2 Sloped Left
> 0 Name: 43721.dat
> 0 Author: Donald Sutter
> 0 LDRAW_ORG Part UPDATE 2004-04
> 0 Unofficial hack for testing purposes.
> 0
> 1 16 -10 0 30 0 0 1 0 1 0 -1 0 0 stud.dat
> 1 16 -10 0 10 0 0 1 0 1 0 -1 0 0 stud.dat
> 1 16 -10 0 -10 0 0 1 0 1 0 -1 0 0 stud.dat
> 1 16 -10 0 -30 0 0 1 0 1 0 -1 0 0 stud.dat
> 0
> 2 4 5 20 -20 0 0 -20
> 2 4 10 20 0 0 0 0
> 2 4 15 20 20 0 0 20
> 0
> 2 2 0 20 -40 3.75 15 -20
> 2 2 3.75 15 -20 5 10 0
> 2 2 5 10 0 3.75 5 20
> 2 2 3.75 5 20 0 0 40
> 0
> 2 2 0 0 -40 1.25 5 -20
> 2 2 1.25 5 -20 5 10 0
> 2 2 5 10 0 11.25 15 20
> 2 2 11.25 15 20 20 20 40
> 0
> 3 46 0 0 -40 0 20 -40 3.75 15 -20
> 3 46 0 0 -40 3.75 15 -20 5 10 0
> 3 46 0 0 -40 5 10 0 3.75 5 20
> 3 46 0 0 -40 3.75 5 20 0 0 40
> 0
> 3 45 20 20 40 0 20 -40 3.75 15 -20
> 3 45 20 20 40 3.75 15 -20 5 10 0
> 3 45 20 20 40 5 10 0 3.75 5 20
> 3 45 20 20 40 3.75 5 20 0 0 40
> 0
> 1 16 0 0 0 -1 0 0 0 1 0 0 0 1 s\43720s01.dat
> 0
The following are the appropriate conditionals for Don's surface. Playing with
it you can have angles where the conditionals seem to go too far, but it's
certainly much better than the current ones.
(Note that the last 4 conditionals are only there to keep the surface smooth in
LDView. I'm not sure if that's appropriate or not, but it looks a whole lot
better in LDView with them present. It looks positively wretched without
them.)
0
5 24 0 0 -40 3.75 15 -20 0 20 -40 5 10 0
5 24 0 0 -40 5 10 0 3.75 15 -20 3.75 5 20
5 24 0 0 -40 3.75 5 20 5 10 0 0 0 40
0
5 24 20 20 40 3.75 15 -20 0 20 -40 5 10 0
5 24 20 20 40 5 10 0 3.75 15 -20 3.75 5 20
5 24 20 20 40 3.75 5 20 5 10 0 0 0 40
0
5 24 0 20 -40 3.75 15 -20 0 0 -40 20 20 40
5 24 3.75 15 -20 5 10 0 0 0 -40 20 20 40
5 24 5 10 0 3.75 5 20 0 0 -40 20 20 40
5 24 3.75 5 20 0 0 40 0 0 -40 20 20 40
0
| | | | | | | | | | | | | | | | | | | | | | |
| |
| In lugnet.cad.dat.parts, Travis Cobbs wrote:
> In lugnet.cad.dat.parts, Don Heyse wrote:
> > Nice, I like the idea of the quadric primitive, but we want to
> > add some curvature to the LDRAW version, right? I fiddled a bit
> > with the part a few days ago, starting with the two triangles
> > outlined by your primitive. I didn't exactly finish, but I think
> > if you take this and make a surface that follows the green X and
> > also follows the red stripes, you end up with something pretty
> > decent where the optional lines work.
>
> The following are the appropriate conditionals for Don's surface.
> Playing with it you can have angles where the conditionals seem to
> go too far, but it's certainly much better than the current ones.
Hey, thanks testing it out. You're right about the conditionals
zig-zagging a bit. I still have the feeling that if the surface
were pinned down to the concave green line those zig-zags would
go away. But I couldn't decide whether to divvy it up with cuts
sorta parallel to the convex green line (like the torus primitives)
or with another fan outta one (or two) of the other corners. I
was kinda hoping that maybe with your superior math intuition, you'd
just know the right answer... ;^)
> (Note that the last 4 conditionals are only there to keep the surface
> smooth in LDView. I'm not sure if that's appropriate or not, but it
> looks a whole lot better in LDView with them present. It looks
> positively wretched without them.)
I'd keep 'em for now. But maybe this weekend I'll try and scale it
down to the 1x1x1 primitive size and pin the surfaces down to that
concave curve. Then it'll need a whole new set of conditionals.
Don
| | | | | | | | | | | | | | | | | | |
| |
| In lugnet.cad.dat.parts, Niels Karsdorp wrote:
> In lugnet.cad.dat.parts, Lars C. Hassing wrote:
>
> > In lugnet.cad.dat.parts, Steve Bliss wrote:
> >
> > > I'm pretty sure that's going to be the problem with *any* partition of this
> > > surface into polygons. Having a mathematical description of the surface would
> > > be good, because then we could potentially create a primitive for the surface,
> > > and rendering programs could substitute a smooth-curve construct for the
> > > primitive.
> >
> > I have made a 43720.inc for the test of the coming L3PPARTS.
> > The mathematical description of the surface is:
> > 80x + 40y + yz = 0
> > and I have used the POV primitive quadric:
> > quadric {
> > <0,0,0>, <0,0,1>, <80,40,0>, 0
> > clipped_by { box { <-20,0,-40>, <0,20,40> } }
> > }
>
>
> Looks good.
> Should we create a new primitive with the next dimensions:?
> 2 24 0 0 1 0 1 1
> 2 24 1 0 -1 0 1 -1
> 2 24 0 0 1 1 0 -1
> 2 24 0 1 1 0 1 -1
> and a POV-quadric version in the coming L3PPARTS.
>
> As the outer twisted surface of the parts with this shape are
> pretty the same size, the inner surface differs among these parts
> (in 43720/43721 the inner surface has a z-size of 72,
> in 45407 the inner suface has a z-size of 76).
> With a general primitive it can be stretched to any dimension.
Good idea with a twist primitive (twist.dat ?).
Perhaps it would be simpler if it were only in one octant:
2 24 0 0 0 0 0 1
2 24 0 0 1 1 1 1
2 24 1 1 1 0 1 0
2 24 0 1 0 0 0 0
POV code would be:
//x - yz = 0
quadric {
<0,0,0>, <0,0,-1>, <1,0,0>, 0
clipped_by { box { <0,0,0>, <1,1,1> } }
}
/Lars
| | | | | | | | | | | | | | | | |
| |
| In lugnet.cad.dat.parts, Lars C. Hassing wrote:
> > > I have made a 43720.inc for the test of the coming L3PPARTS.
> > > The mathematical description of the surface is:
> > > 80x + 40y + yz = 0
> > > and I have used the POV primitive quadric:
> > > quadric {
> > > <0,0,0>, <0,0,1>, <80,40,0>, 0
> > > clipped_by { box { <-20,0,-40>, <0,20,40> } }
> > > }
> >
> >
> > Looks good.
> > Should we create a new primitive with the next dimensions:?
> > 2 24 0 0 1 0 1 1
> > 2 24 1 0 -1 0 1 -1
> > 2 24 0 0 1 1 0 -1
> > 2 24 0 1 1 0 1 -1
> > and a POV-quadric version in the coming L3PPARTS.
> >
> > As the outer twisted surface of the parts with this shape are
> > pretty the same size, the inner surface differs among these parts
> > (in 43720/43721 the inner surface has a z-size of 72,
> > in 45407 the inner suface has a z-size of 76).
> > With a general primitive it can be stretched to any dimension.
>
> Good idea with a twist primitive (twist.dat ?).
> Perhaps it would be simpler if it were only in one octant:
> 2 24 0 0 0 0 0 1
> 2 24 0 0 1 1 1 1
> 2 24 1 1 1 0 1 0
> 2 24 0 1 0 0 0 0
> POV code would be:
> //x - yz = 0
> quadric {
> <0,0,0>, <0,0,-1>, <1,0,0>, 0
> clipped_by { box { <0,0,0>, <1,1,1> } }
> }
> /Lars
Ok so it's been a few years, but I took another look at this.
Did anybody ever make a twist primitive? It appears like all
you need to do is something like this.
Don
0 Wedge 4 x 2 Sloped Left
0 Name: 43721.dat
0 Author: Donald Sutter
0 LDRAW_ORG Part UPDATE 2004-04
0 Unofficial hack for testing purposes.
0
1 16 0 0 0 -1 0 0 0 1 0 0 0 1 s\43720s01.dat
0
1 16 -10 0 30 0 0 1 0 1 0 -1 0 0 stud.dat
1 16 -10 0 10 0 0 1 0 1 0 -1 0 0 stud.dat
1 16 -10 0 -10 0 0 1 0 1 0 -1 0 0 stud.dat
1 16 -10 0 -30 0 0 1 0 1 0 -1 0 0 stud.dat
0
0 // Begin 4 quadrant twist patch.
0 // Is each quadrant actually the same part?
0 // Scale down to 1x1 for reuse in other parts.
0 // Can break each quadrant into 4 parts for
0 // an even finer mesh.
3 16 11.25 15 20 5 10 0 10 20 0
3 16 11.25 15 20 10 20 0 20 20 40
3 16 11.25 15 20 20 20 40 10 10 40
3 16 11.25 15 20 10 10 40 5 10 0
0
3 16 3.75 5 20 0 0 0 5 10 0
3 16 3.75 5 20 5 10 0 10 10 40
3 16 3.75 5 20 10 10 40 0 0 40
3 16 3.75 5 20 0 0 40 0 0 0
0
3 16 1.25 5 -20 0 0 -40 0 10 -40
3 16 1.25 5 -20 0 10 -40 5 10 0
3 16 1.25 5 -20 5 10 0 0 0 0
3 16 1.25 5 -20 0 0 0 0 0 -40
0
3 16 3.75 15 -20 0 10 -40 0 20 -40
3 16 3.75 15 -20 0 20 -40 10 20 0
3 16 3.75 15 -20 10 20 0 5 10 0
3 16 3.75 15 -20 5 10 0 0 10 -40
0 // End 4 quadrant twist patch.
0
| | | | | | | | | | | | | | | | |
|
Ok so its been a few years, but I took another look at this.
Did anybody ever make a twist primitive? It appears like all
you need to do is something like this.
|
Very interesting!
I am not so much comvinced by the improvement for flat shading. Looks like we
trade triangular artefacts in one direction with artefacts in the other one.
But it drastically improves the very ugly condlines artefacts!
Not sure there are so many parts that would benefit from this rectangular
twisted primitive (apart from those mentionned in this thread), but its worth
creating it nonetheless. Don, would you submit it to PT?
Philo
PS: Attached your code with triangles merged to quads (removes LDView artifacts
in smooth shading) and condlines added. (I hope that ftx only messes up code in
preview...)
0 // Begin 4 quadrant twist patch.
0 // Is each quadrant actually the same part?
0 // Scale down to 1x1 for reuse in other parts.
0 // Can break each quadrant into 4 parts for
0 // an even finer mesh.
4 16 10 20 0 11.25 15 20 5 10 0 3.75 15 -20
3 16 11.25 15 20 10 20 0 20 20 40
3 16 11.25 15 20 20 20 40 10 10 40
4 16 5 10 0 11.25 15 20 10 10 40 3.75 5 20
0
4 16 5 10 0 3.75 5 20 0 0 0 1.25 5 -20
3 16 3.75 5 20 10 10 40 0 0 40
3 16 3.75 5 20 0 0 40 0 0 0
0
3 16 1.25 5 -20 0 0 -40 0 10 -40
4 16 5 10 0 1.25 5 -20 0 10 -40 3.75 15 -20
3 16 1.25 5 -20 0 0 0 0 0 -40
0
3 16 3.75 15 -20 0 10 -40 0 20 -40
3 16 3.75 15 -20 0 20 -40 10 20 0
0 // End 4 quadrant twist patch.
0
0 // Added lines/Condlines
5 24 11.25 15 20 5 10 0 10 20 0 10 10 40
5 24 10 20 0 11.25 15 20 5 10 0 20 20 40
5 24 20 20 40 11.25 15 20 10 20 0 10 10 40
5 24 10 10 40 11.25 15 20 20 20 40 5 10 0
5 24 3.75 5 20 0 0 0 5 10 0 0 0 40
5 24 5 10 0 3.75 5 20 0 0 0 10 10 40
5 24 10 10 40 3.75 5 20 5 10 0 0 0 40
5 24 0 0 40 3.75 5 20 10 10 40 0 0 0
5 24 1.25 5 -20 0 0 -40 0 10 -40 0 0 0
5 24 0 10 -40 1.25 5 -20 0 0 -40 5 10 0
5 24 5 10 0 1.25 5 -20 0 10 -40 0 0 0
5 24 0 0 0 1.25 5 -20 5 10 0 0 0 -40
5 24 3.75 15 -20 0 10 -40 0 20 -40 5 10 0
5 24 0 20 -40 3.75 15 -20 0 10 -40 10 20 0
5 24 10 20 0 3.75 15 -20 0 20 -40 5 10 0
5 24 5 10 0 3.75 15 -20 10 20 0 0 10 -40
| | | | | | | | | | | | | | | | | In lugnet.cad.dat.parts, Philippe Hurbain wrote:
|
PS: Attached your code with triangles merged to quads (removes LDView
artifacts in smooth shading) and condlines added. (I hope that ftx only
messes up code in preview...)
|
Unfortunately it messes up unless you inlude FTX line breaks, or fixed code box
characters (pipe). Unfortunately, both make it harder for people using email or
newsreaders, so probably best to do it as you did, browsers can just click View
Raw Message to get the nicely formatted version.
(Hmmm I thought there was a FTX group woulda set FUT there)
ROSCO
0 // Begin 4 quadrant twist patch.
0 // Is each quadrant actually the same part?
0 // Scale down to 1x1 for reuse in other parts.
0 // Can break each quadrant into 4 parts for
0 // an even finer mesh.
4 16 10 20 0 11.25 15 20 5 10 0 3.75 15 -20
3 16 11.25 15 20 10 20 0 20 20 40
3 16 11.25 15 20 20 20 40 10 10 40
4 16 5 10 0 11.25 15 20 10 10 40 3.75 5 20
0
4 16 5 10 0 3.75 5 20 0 0 0 1.25 5 -20
3 16 3.75 5 20 10 10 40 0 0 40
3 16 3.75 5 20 0 0 40 0 0 0
0
3 16 1.25 5 -20 0 0 -40 0 10 -40
4 16 5 10 0 1.25 5 -20 0 10 -40 3.75 15 -20
3 16 1.25 5 -20 0 0 0 0 0 -40
0
3 16 3.75 15 -20 0 10 -40 0 20 -40
3 16 3.75 15 -20 0 20 -40 10 20 0
0 // End 4 quadrant twist patch.
0
0 // Added lines/Condlines
5 24 11.25 15 20 5 10 0 10 20 0 10 10 40
5 24 10 20 0 11.25 15 20 5 10 0 20 20 40
5 24 20 20 40 11.25 15 20 10 20 0 10 10 40
5 24 10 10 40 11.25 15 20 20 20 40 5 10 0
5 24 3.75 5 20 0 0 0 5 10 0 0 0 40
5 24 5 10 0 3.75 5 20 0 0 0 10 10 40
5 24 10 10 40 3.75 5 20 5 10 0 0 0 40
5 24 0 0 40 3.75 5 20 10 10 40 0 0 0
5 24 1.25 5 -20 0 0 -40 0 10 -40 0 0 0
5 24 0 10 -40 1.25 5 -20 0 0 -40 5 10 0
5 24 5 10 0 1.25 5 -20 0 10 -40 0 0 0
5 24 0 0 0 1.25 5 -20 5 10 0 0 0 -40
5 24 3.75 15 -20 0 10 -40 0 20 -40 5 10 0
5 24 0 20 -40 3.75 15 -20 0 10 -40 10 20 0
5 24 10 20 0 3.75 15 -20 0 20 -40 5 10 0
5 24 5 10 0 3.75 15 -20 10 20 0 0 10 -40
|
|
| | | | | | |