http://programmingexamples.net/w/index.php?title=CPP/Boost/Geometry/CoordinateConversion&feed=atom&action=history
CPP/Boost/Geometry/CoordinateConversion - Revision history
2024-03-28T20:22:20Z
Revision history for this page on the wiki
MediaWiki 1.23.5
http://programmingexamples.net/w/index.php?title=CPP/Boost/Geometry/CoordinateConversion&diff=5203&oldid=prev
Daviddoria: Created page with '==Spherical.cpp== <source lang="cpp"> #include <boost/geometry/geometry.hpp> #include <iostream> static void CartesianToSpherical(); static void SphericalToCartesian(); int ma…'
2012-09-25T17:45:50Z
<p>Created page with '==Spherical.cpp== <source lang="cpp"> #include <boost/geometry/geometry.hpp> #include <iostream> static void CartesianToSpherical(); static void SphericalToCartesian(); int ma…'</p>
<p><b>New page</b></p><div>==Spherical.cpp==<br />
<source lang="cpp"><br />
#include <boost/geometry/geometry.hpp><br />
<br />
#include <iostream><br />
<br />
static void CartesianToSpherical();<br />
static void SphericalToCartesian();<br />
<br />
int main()<br />
{<br />
CartesianToSpherical();<br />
SphericalToCartesian();<br />
}<br />
<br />
void CartesianToSpherical()<br />
{<br />
std::cout << "CartesianToSpherical()" << std::endl;<br />
namespace bg = boost::geometry; // bg = 'B'oost 'G'eometry<br />
namespace cs = bg::cs; // cs = 'C'oordinate 'S'ystem<br />
<br />
typedef bg::model::point<long double, 3, cs::cartesian> CartesianType;<br />
CartesianType cartesian(0.084186, 0.0225576, 0.996195);<br />
<br />
typedef bg::model::point<long double, 2, cs::spherical<bg::degree> > SphericalType;<br />
SphericalType spherical;<br />
<br />
bg::strategy::transform::from_cartesian_3_to_spherical_polar_2<CartesianType, SphericalType> strategy;<br />
bg::transform(cartesian, spherical, strategy);<br />
<br />
std::cout<br />
<< "cartesian: " << bg::dsv(cartesian) << std::endl // dsv = Delimiter Separated Values<br />
<< "spherical: " << bg::dsv(spherical) << std::endl;<br />
}<br />
<br />
void SphericalToCartesian()<br />
{<br />
std::cout << "SphericalToCartesian()" << std::endl;<br />
namespace bg = boost::geometry; // bg = 'B'oost 'G'eometry<br />
namespace cs = bg::cs; // cs = 'C'oordinate 'S'ystem<br />
<br />
// (theta=5.0, phi=15.0)<br />
typedef bg::model::point<long double, 2, cs::spherical<bg::degree> > SphericalType;<br />
SphericalType spherical(15.0, 5.0);<br />
<br />
typedef bg::model::point<long double, 3, cs::cartesian> CartesianType;<br />
CartesianType cartesian;<br />
<br />
bg::strategy::transform::from_spherical_polar_2_to_cartesian_3<SphericalType, CartesianType> strategy;<br />
bg::transform(spherical, cartesian, strategy);<br />
<br />
std::cout<br />
<< "spherical: " << bg::dsv(spherical) << std::endl // dsv = Delimiter Separated Values<br />
<< "cartesian: " << bg::dsv(cartesian) << std::endl;<br />
}<br />
<br />
</source><br />
<br />
==CMakeLists.txt==<br />
<source lang="cmake"><br />
cmake_minimum_required(VERSION 2.6)<br />
<br />
Project(Spherical)<br />
<br />
set(Boost_USE_MULTITHREADED ON)<br />
FIND_PACKAGE(Boost 1.38 COMPONENTS required)<br />
<br />
INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${Boost_INCLUDE_DIRS})<br />
LINK_DIRECTORIES(${LINK_DIRECTORIES} ${Boost_LIBRARY_DIRS})<br />
<br />
ADD_EXECUTABLE(Spherical Spherical.cpp)<br />
</source></div>
Daviddoria