Thank you Rolf.
Below is how I built it in the end.
I had to take measures to ensure that the ellipse polygon closed back on
itself.
Roger:  Would it be appropriate to include this function in sp or an
associated contributed package.
It seems that building spatialPolygons from ellipse specifications would be
a task required of many sp users.

## modified code from Rolf Turner
require(sp)
require(spatstat)
ellipseSP <- function (x0, y0, a, b, phi=pi/2, npts = 100, ...) {  ##
Returns SpatialPolygons ellipse
                                                                                
              ## phi defaults to 90 degrees 
                                                                                
             
## whereby a lies in the N-S and
                                                                                
             
## b in the E-W directions
        theta <- seq(0, 2 * pi, length = npts)      
        xh <-  a * cos(theta)       
        yh <-  b * sin(theta)        
        co <- cos(phi)       
        si <- sin(phi)       
        x  <- x0 + co*xh - si*yh
        x[npts]<-x[1]   ## force closure of polygon
        y  <- x0 + si*xh + co*yh  
        y[npts]<-y[1]   ## force closure of polygon
        return(SpatialPolygons(list(Polygons(list(with(list(x = x, y =
y),Polygon(cbind(x,y)))),1))) )
}   
## Example plot
eSP <- ellipseSP(x0=0, y0=0, a=8, b=4)  
plot(eSP) 
##use sp::spsample to randomly select points from within the ellipse 
points(spsample(eSP, n=100, type="random"), col='red', pch=19, cex=.25)  
#



-----
Tony Fischbach, Wildlife Biologist
Walrus Research Program
Alaska Science Center
U.S. Geological Survey
4210 University Drive
Anchorage, AK 99508-4650

[email protected]
http://alaska.usgs.gov/science/biology/walrus
--
View this message in context: 
http://r-sig-geo.2731867.n2.nabble.com/build-polygons-from-ellipses-then-sample-points-within-the-polygons-tp7585922p7585978.html
Sent from the R-sig-geo mailing list archive at Nabble.com.

_______________________________________________
R-sig-Geo mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to