新しいジオメトリライブラリをブースト1.47で使用して遊んで、2D極座標システムを定義できるかどうかを知りたがっていました。ヘッダファイルやドキュメントで 私は極座標システムの定義を見つけましたが、私はコンパイルエラーを取得しています以下のサンプルコードでそれを使用しようとすると:VC2010でブーストジオメトリ:2D極座標システムを使用
using namespace boost;
typedef geometry::cs::polar<geometry::radian> geometry_type;
typedef geometry::model::point<double, 2, geometry_type> point_type;
const double PI = math::constants::pi<double>();
point_type p1(0, 0);
point_type p2(1, PI/2);
double dist = geometry::distance(p1, p2); // COMPILATION FAILS HERE
私が取得:「エラーC2039: 'を型 ':上記の距離関数をコンパイルしようとすると' boost :: geometry :: traits :: cs_tag 'のメンバーではありません。
これは、ブーストヘッダファイル(ブースト/幾何学/コア/ cs.hpp)から抽出された極座標システムの定義です:
/*!
\brief Polar coordinate system
\details Defines the polar coordinate system "in which each point
on a plane is determined by an angle and a distance"
\see http://en.wikipedia.org/wiki/Polar_coordinates
\ingroup cs
*/
template<typename DegreeOrRadian>
struct polar
{
typedef DegreeOrRadian units;
};
しかし、私は「極性」であるため、定義が不完全であることを考えますどこにも言及されていない。私は単純な2D極座標システムのために、自分自身で距離戦略やその他の必要な特性を定義することになっていますか?
編集:私はこの問題について他の回答を得ていないので自分の答えを受け入れました – floyd73