Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
155 views
in Technique[技术] by (71.8m points)

r - Turning Angles of Sequential Vectors: Complex Plane

I am trying to compute the turning angles of sequential vectors in the complex plane. Please see the code below for a demo data frame and my attempt at calculating the angles.

The sign of the angles seem correct: left turns are positive and right turns are negative. However, the turning angles do not look right when I reference the plot. NOTE: I want the turning angles and not the angles between the vectors. Image for reference:

enter image description here

set.seed(123)

# Generate a random path and plot it
path.short.random <- function(points = 6) {
  x <- runif(points, -1, 1)
  y <- rnorm(points, 0, 0.25)
  i <- order(x, y)
  x <- x[i]
  y <- y[i]
  path <- data.frame(x = x, y = y)
  plot(x, y, main = "Random Path", asp = 1)
  # draw arrows from point to point
  s <- seq(length(x) - 1)  # one shorter than data
  arrows(x[s], y[s], x[s + 1], y[s + 1], col = 1:points)
  path
}

# Save the path as a data frame
df <- path.short.random()

# Compute sequential turning angles
get.angles <- function(df) {
  df$polar <- complex(real = df$x, imaginary = df$y)
  df$displacement <- c(0, diff(df$polar))
  diff(Arg(df$displacement[2:nrow(df)]))
}

get.angles(df)
question from:https://stackoverflow.com/questions/65651587/turning-angles-of-sequential-vectors-complex-plane

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...