R 旋转和平移多边形
当我试图将旋转和平移应用于矩形,然后在R 旋转和平移多边形,r,leaflet,sf,R,Leaflet,Sf,当我试图将旋转和平移应用于矩形,然后在传单上将两者可视化时,遇到了一个问题。我试图将矩形旋转180°,然后向下平移 问题是,在该变换之后,新矩形似乎扭曲了(沿y轴更大),尽管它应该是相同的大小 在这里,我复制了我的代码和结果的照片。如果您有任何见解,我将不胜感激 library(sf) library(leaflet) rect <- rbind(c(-1, -5), c(1, -5), c(1, 5), c(-1, 5), c(-1, -5)) rect_poly<- st_po
传单
上将两者可视化时,遇到了一个问题。我试图将矩形旋转180°,然后向下平移
问题是,在该变换之后,新矩形似乎扭曲了(沿y轴更大),尽管它应该是相同的大小
在这里,我复制了我的代码和结果的照片。如果您有任何见解,我将不胜感激
library(sf)
library(leaflet)
rect <- rbind(c(-1, -5), c(1, -5), c(1, 5), c(-1, 5), c(-1, -5))
rect_poly<- st_polygon(list(rect))
angle <- pi
rotation_matrix <- matrix(c(cos(angle), sin(angle), -sin(angle), cos(angle)), 2, 2)
rect_rot<- st_polygon(list(rect))*rotation_matrix + c(0, -50)
leaflet() %>%
addPolygons(data = rect_poly) %>%
addPolygons(data = rect_rot)
库(sf)
图书馆(单张)
rect它确实“看起来”拉长了。但这与你的旋转无关。例如,如果将它们相邻放置,它们的长度相同:
library(sf)
library(leaflet)
rect <- rbind(c(-1, -5), c(1, -5), c(1, 5), c(-1, 5), c(-1, -5))
rect_poly<- st_polygon(list(rect))
angle <- pi
rotation_matrix <- matrix(c(cos(angle), sin(angle), -sin(angle), cos(angle)), 2, 2)
rect_rot<- st_polygon(list(rect %*% rotation_matrix)) + c(4, 0)
leaflet() %>%
addPolygons(data = rect_poly) %>%
addPolygons(data = rect_rot)
库(sf)
图书馆(单张)
rect这取决于传单的使用。
如果使用简单的笛卡尔CRS
,则不会出现失真:
leaflet(options = leafletOptions(crs = leafletCRS(crsClass = "L.CRS.Simple"))) %>%
addPolygons(data = rect_poly) %>%
addPolygons(data = rect_rot)