当前位置:  开发笔记 > 编程语言 > 正文

从多边形的两侧绘制等距点

如何解决《从多边形的两侧绘制等距点》经验,为你挑选了1个好方法。

我正在绘制具有以下顶点的多边形

      x            y
-0.02208709 -0.039161304
 0.01184081 -0.020268029
 0.04578401 -0.001351904
 0.02210236  0.039176396
-0.01185226  0.020252146
-0.04578784  0.001352696

使用以下代码

plot(x,y)
polygon(x,y)
points(mean(x),mean(y),col="red")

在此输入图像描述

现在我想沿着多边形的边绘制50个等间距点.有什么建议怎么办?



1> jbaums..:

您可以spsamplesp包中执行此操作.

首先,我们将加载库并读入您的顶点.

library(sp)

xy <- read.table(text='x            y
-0.02208709 -0.039161304
0.01184081 -0.020268029
0.04578401 -0.001351904
0.02210236  0.039176396
-0.01185226  0.020252146
-0.04578784  0.001352696', header=TRUE)

现在SpatialLines从顶点创建一个对象.这是一个有点乱-看?SpatialLines?`SpatialLines-Class`,如果你会被卡住.

l <- SpatialLines(list(Lines(Line(rbind(xy, xy[1, ])), ID=1)))

然后对点进行采样并强制data.frame使用as.data.frame(pts)coordinates(pts).

pts <- spsample(l, 50, type="regular")
coordinates(pts) # only the head shown here
##                 x           y
## [1,] -0.019343310 -0.03763339
## [2,] -0.014987452 -0.03520776
## [3,] -0.010631594 -0.03278213
## [4,] -0.006275735 -0.03035651
## [5,] -0.001919877 -0.02793088
## [6,]  0.002435981 -0.02550525

plot(l)
points(pts, pch=20)

在此输入图像描述

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有