[R] expected arguments for rgl.triangles

Duncan Murdoch murdoch.duncan at gmail.com
Fri Nov 14 14:27:00 CET 2014


On 14/11/2014 7:18 AM, Alexander Shenkin wrote:
> Hello all,
>
> I have a set of points in 3D space that represent vertices of a
> non-convex polyhedron.  I would like to plot this polyhedron, and have
> been trying to do so with rgl.triangles, but to no avail.  I imagine I
> don't understand what rgl.triangles expects for arguments.  I have
> constructed the triangles myself, and have the three vertices of each
> triangle.  I am then passing these to rgl.triangles in the x,y & z
> arguments.
>
> I end up with unexpected results (see http://i.imgur.com/BaKfzn7.png).
> Might someone advise me about the structure of arguments that
> rgl.triangles expects (or perhaps a better way to go about this)?
> ?rgl.triangles doesn't help much with this particular issue...

I can't tell what you think is wrong.   Your arguments look right. 
Here's some general advice:

1.  Don't use rgl.triangles().  Use triangles3d().  This won't affect 
the geometry, but it handles colours and other attributes more rationally.

2.  Think about using a triangle mesh instead of triangles3d().  You 
only need to specify each vertex once, instead of
many times as your current code does.

3.  Put together a simpler example, e.g. two triangles, and see if that 
works.  Then build up from there.

Duncan Murdoch

>
> Thanks,
> Allie
>
>
> The code, where rows 2,3,4 are one triangle, 5,6,7 the next, etc
> (apologies - don't know how to serialize a dataframe to make it easy to
> suck into one's environment):
>
> rgl.triangles(tri_df[,1],tri_df[,2],tri_df[,3],col=heat.colors(nrow(tri_df)),alpha=.2)
>
>   > tri_df
>               x          y   z
> 2  -2.9970624 -0.1327280 8.0
> 3  -1.3358202  3.8762849 4.9
> 4   3.5380065  0.6652143 9.1
> 5  -1.3358202  3.8762849 4.9
> 6   1.4644874  3.6145922 5.3
> 7   3.5380065  0.6652143 9.1
> 8   1.4644874  3.6145922 5.3
> 9   1.9606671 -3.8269811 4.5
> 10  3.5380065  0.6652143 9.1
> 11  1.9606671 -3.8269811 4.5
> 12 -3.5337687  3.6772923 3.9
> 13  3.5380065  0.6652143 9.1
> 14 -3.5337687  3.6772923 3.9
> 15 -5.6586500  1.2726665 3.5
> 16  3.5380065  0.6652143 9.1
> 17 -5.6586500  1.2726665 3.5
> 18  3.8327817 -2.8895994 3.4
> 19  3.5380065  0.6652143 9.1
> 20  3.8327817 -2.8895994 3.4
> 21  6.0806691 -0.4852461 2.2
> 22  3.5380065  0.6652143 9.1
> 23  6.0806691 -0.4852461 2.2
> 24 -0.5109254 -6.7807784 0.5
> 25  3.5380065  0.6652143 9.1
> 26 -0.5109254 -6.7807784 0.5
> 27  2.3503422 -6.2742244 1.8
> 28  3.5380065  0.6652143 9.1
> 29  2.3503422 -6.2742244 1.8
> 30  5.4741865 -1.1803740 0.3
> 31  3.5380065  0.6652143 9.1
> 32  5.4741865 -1.1803740 0.3
> 33  5.7888812 -0.3589635 2.7
> 34  3.5380065  0.6652143 9.1
> 35  5.7888812 -0.3589635 2.7
> 36 -3.1939122 -2.4080958 5.4
> 37  3.5380065  0.6652143 9.1
> 38 -3.1939122 -2.4080958 5.4
> 39 -1.4732303 -3.9331403 4.9
> 40  3.5380065  0.6652143 9.1
> 41 -1.4732303 -3.9331403 4.9
> 42 -3.4863074  0.3092904 6.8
> 43  3.5380065  0.6652143 9.1
> 44 -3.4863074  0.3092904 6.8
> 45  0.8019969 -2.2620347 7.2
> 46  3.5380065  0.6652143 9.1
> 47  0.8019969 -2.2620347 7.2
> 48 -2.9970624 -0.1327280 8.0
> 49  3.5380065  0.6652143 9.1
> 50 -1.3358202  3.8762849 4.9
> 51 -2.9970624 -0.1327280 8.0
> 52  6.4508128 -2.4488802 0.3
> 53  1.4644874  3.6145922 5.3
> 54 -1.3358202  3.8762849 4.9
> 55  6.4508128 -2.4488802 0.3
> 56  1.9606671 -3.8269811 4.5
> 57  1.4644874  3.6145922 5.3
> 58  6.4508128 -2.4488802 0.3
> 59 -3.5337687  3.6772923 3.9
> 60  1.9606671 -3.8269811 4.5
> 61  6.4508128 -2.4488802 0.3
> 62 -5.6586500  1.2726665 3.5
> 63 -3.5337687  3.6772923 3.9
> 64  6.4508128 -2.4488802 0.3
> 65  3.8327817 -2.8895994 3.4
> 66 -5.6586500  1.2726665 3.5
> 67  6.4508128 -2.4488802 0.3
> 68  6.0806691 -0.4852461 2.2
> 69  3.8327817 -2.8895994 3.4
> 70  6.4508128 -2.4488802 0.3
> 71 -0.5109254 -6.7807784 0.5
> 72  6.0806691 -0.4852461 2.2
> 73  6.4508128 -2.4488802 0.3
> 74  2.3503422 -6.2742244 1.8
> 75 -0.5109254 -6.7807784 0.5
> 76  6.4508128 -2.4488802 0.3
> 77  5.4741865 -1.1803740 0.3
> 78  2.3503422 -6.2742244 1.8
> 79  6.4508128 -2.4488802 0.3
> 80  5.7888812 -0.3589635 2.7
> 81  5.4741865 -1.1803740 0.3
> 82  6.4508128 -2.4488802 0.3
> 83 -3.1939122 -2.4080958 5.4
> 84  5.7888812 -0.3589635 2.7
> 85  6.4508128 -2.4488802 0.3
> 86 -1.4732303 -3.9331403 4.9
> 87 -3.1939122 -2.4080958 5.4
> 88  6.4508128 -2.4488802 0.3
> 89 -3.4863074  0.3092904 6.8
> 90 -1.4732303 -3.9331403 4.9
> 91  6.4508128 -2.4488802 0.3
> 92  0.8019969 -2.2620347 7.2
> 93 -3.4863074  0.3092904 6.8
> 94  6.4508128 -2.4488802 0.3
> 95 -2.9970624 -0.1327280 8.0
> 96  0.8019969 -2.2620347 7.2
> 97  6.4508128 -2.4488802 0.3
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list