# Re: [R-sig-Geo] [FORGED] uniformly sample points on a border of a polygon

```On 14/10/16 07:03, Paolo Piras wrote:
```
`HI folks,`
```
I write for a (hopefully) relatively simple question:

I would need to uniformly sample 1000 or more points **along the border** of a
polygon (not within the area enclosed) that is identified by ordered but not
equally spaced points; which is the fastest way?

In a first moment I thought to sample between any pair of consecutive points
but, given that starting points are not uniformly distributed, the final result
would be very far from a uniform distribution.

here my polygon:

mypol<-round(matrix(c(-13.8447497369687, -3.51439434200449, 6.09494902836977,
6.83498916728338, 9.20403746769121, 15.3061452155498, 18.4050681631565,
15.334153355932, 9.21809033073377, 6.90467983448734, 6.17942233200763,
-3.4864867866601, -13.8299219386242, -17.5237987124776, -17.2262670680261,
-17.5217563171495, -2.29667185082115, -7.72275721405543, -9.77084968112857,
-8.81725304021858, -8.32894043391822, -4.76080777897439, -0.0600572363382094,
4.62779963258511, 8.20771806467615, 8.70484104396818, 9.68531129857718,
7.67574865642846, 2.46081860449754, 1.31152149442131, 0.0845735294613392,
-1.11988475144136),ncol=2),digits=2)
plot(mypol,asp=1,cex=0)
text(mypol[,1],mypol[,2],c(1:nrow(mypol)))
Thanks in advance for any hints
```
```

```
This can be done reasonably easily using the spatstat package, for some value of the word "reasonably". Here's how:
```
require(spatstat)
W <- owin(poly=mypol)
m <- cbind(mypol[-nrow(mypol),],mypol[-1,])
m <- rbind(m,c(mypol[nrow(mypol),],mypol[1,]))
m <- as.data.frame(m)
names(m) <- c("x0","y0","x1","y1")
L <- with(m,psp(x0,y0,x1,y1,window=boundingbox(W)))
set.seed(42)
#X <- runifpointOnLines(1000,L)
X <- runifpointOnLines(100,L)
plot(W,main="Piras's Polygon")

```
Note that I have just generated 100 uniform points, r.t. 1000, so that the resulting plot is a little less cluttered.
```
```
There may be a sexier way of accomplishing your desideratum; I have cc-ed this email to my co-authors Adrian and Ege who may come up with better ideas.
```
cheers,

Rolf Turner

--
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
```