Assuming your polyline is defined by two vectors, one for the x coordinates, one for the y coordinates, you can try the following
library(NISTunits) polyangles <- function(xV,yV) { stopifnot( (length(xV)==length(yV)) && (length(xV) >= 3)) v <- function(i) { c( xV[i]-xV[i-1], yV[i]-yV[i-1])} vlen <- function(v) { sqrt(sum(v*v)) } lV <- rep(NA_real_,length(xV)) for ( i in 2:(length(xV)-1) ) lV[i] <- acos( sum(v(i)*v(i+1))/(vlen(v(i))*vlen(v(i+1))) ) angleV <- NISTunits::NISTradianTOdeg(lV) angleV } # example x <- c(0:3) y <- c(0,0,1,1) polyangles( x, y ) # NA 45.0 45.0 NA Note, I have included the NA's at the beginning and end of the polyline as a reminder that there is no angle defined there. HTH, Eric On Tue, Jan 30, 2018 at 4:34 PM, Jeff Newmiller <jdnew...@dcn.davis.ca.us> wrote: > A polyline by definition has many angles, so your question is ill-formed. > And this is a question about math, not R, so is off topic here. I suggest > reading Wikipedia. > -- > Sent from my phone. Please excuse my brevity. > > On January 29, 2018 11:10:02 PM PST, javad bayat <j.bayat...@gmail.com> > wrote: > >Dear R users > >I am trying to find a formula to calculate the angle of a polyline. Is > >there a way to do this? > >Many thanks. > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/ > posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.