Dear R-helpers, an rgl-ers in particular,

what is the easiest way to plot a section of a plane in 3D, that is
given by the xyz coordinates of the outline?

Suppose I have a polygon - which I know for sure is a set of
coordinates on the same plane. One method I found is to use surf.tri
from the geometry package, and then plot the triangles with
rgl.triangles. This method is not perfect though, because it makes the
convex hull - no good for the polygon below.

thanks for your help,

Remko

# Example polygon in 3D (matrix with tree columns x,y,z)
m <- structure(c(-24.71, -36.45, -59.54, -83.97, -112.63, -126.66,
-152.79, -171.04, -178.92, -183.71, -189.27, -191.56, -195.98,
-203.09, -207.89, -212.12, -216.92, -221.73, -210.58, -199.43,
-195.58, -175.38, -161.72, -152.09, -140.75, -123.63, -97.87,
-79.04, -69.63, -61.75, -54.08, -38.34, -30.47, -24.71, -15.44,
-13.33, -14.26, -17.39, -24.5, -31.92, -52.3, -70.45, -79.41,
-89.16, -102.08, -111.61, -119.76, -125.55, -128.56, -132.55,
-135.55, -138.55, -132.93, -127.31, -124.91, -125.78, -126.69,
-127.42, -124.38, -117.74, -105.69, -88.52, -79.94, -70.97, -59.43,
-34.75, -25.78, -15.44, 689.49, 686.54, 680.81, 674.79, 667.78,
664.42, 658.27, 654.05, 652.25, 651.22, 650.06, 649.66, 648.7,
647.04, 645.89, 644.91, 643.77, 642.63, 645.3, 647.98, 648.89,
653.93, 657.35, 659.75, 662.52, 666.66, 672.86, 677.25, 679.44,
681.24, 682.95, 686.44, 688.24, 689.49), .Dim = c(34L, 3L))

# One (wrong) way
library(geometry)
tm <- t(surf.tri(m, delaunayn(m)))
plot3d(m[,1],m[,2],m[,3], type='l', col="black", size=2)
rgl.triangles(m[tm, 1], m[tm, 2], m[tm, 3],  col="green")






-------------------------------------------------
Remko Duursma
Research Lecturer

Centre for Plants and the Environment
University of Western Sydney
Hawkesbury Campus
Richmond NSW 2753

Dept of Biological Science
Macquarie University
North Ryde NSW 2109
Australia

Mobile: +61 (0)422 096908
www.remkoduursma.com

______________________________________________
R-help@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.

Reply via email to