У меня довольно сложная проблема, и я не знаю, с чего начать. У меня есть набор координат пространственных точек (X & Y), которые также включают информацию (Высота).
set.seed(12345)
X = runif(100, 0, 45)
Y = runif(100, 0, 45)
Height = runif(100, 6, 9)
data <- data.frame("X" = X, "Y" = Y, "Height" = Height)
data$Radius_max = 1/3 * data$Height
Координаты выглядят примерно так:
ggplot(data, aes(X, Y)) +
geom_point()
Для каждой точки мне нужен буфер, который масштабируется по высоте. Буфер - это уравнение, которое масштабируется по высоте, но по существу представляет собой кольцевой буфер, похожий на конус Следующие шаги - то, что я придумал, чтобы определить размер буфера для каждой точки:
- Установить нижнюю левую точку radius_max.
- Найти пересечение радиуса в любой заданной точке относительно следующей точки.
- Сделайте это несколько раз, чтобы установить новый радиус для начальной точки относительно новых соседних радиусов.
Причиной начала в начальной точке является то, что каждый следующий радиус будет ограничен соседними точками (случайное генерирование точек может иметь или не иметь этот эффект). Ни один конус не может быть ниже другого конуса. Думай о деревьях. Если возможно, я хотел бы знать радиус с шагом 45 градусов.
Я согласен с любым решением и подозреваю, что может быть способ сделать это с пространственными пакетами, а не делать это вручную. С чего начать?