Convert polar coordinates to Cartesian
[This article was first published on Quantitative Ecology, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
When I want to calculate the coordinates of a location (e.g., a nest or burrow) based on distance and bearing from a grid point, this function helps me avoid writing down SOH-CAH-TOA every time. Just note that the bearing in this case is from the grid point (known location) to the unknown location.Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
polar2cart<-function(x,y,dist,bearing,as.deg=FALSE){ ## Translate Polar coordinates into Cartesian coordinates ## based on starting location, distance, and bearing ## as.deg indicates if the bearing is in degrees (T) or radians (F) if(as.deg){ ##if bearing is in degrees, convert to radians bearing=bearing*pi/180 } newx<-x+dist*sin(bearing) ##X newy<-y+dist*cos(bearing) ##Y return(list("x"=newx,"y"=newy)) } ##Example oldloc=c(0,5) bearing=200 #degrees dist=5 newloc<-polar2cart(oldloc[1],oldloc[2],dist,bearing,TRUE) plot(oldloc[1],oldloc[2],xlim=c(-10,10),ylim=c(-10,10)) points(newloc$x,newloc$y,col="red")
To leave a comment for the author, please follow the link and comment on their blog: Quantitative Ecology.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.