# Convert polar coordinates to Cartesian

October 14, 2007
By

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.

```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))}##Exampleoldloc=c(0,5) bearing=200 #degreesdist=5newloc<-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")

var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' };

(function(d, t) {
var s = d.createElement(t); s.type = 'text/javascript'; s.async = true;
var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r);
}(document, 'script'));

Related
ShareTweet

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.