FrontPage  ページ一覧  検索  更新履歴  RSS  ログイン

Polygon

概要

多角形を表現するクラスです。原点datumに対して、各頂点をdatumに対する相対座標で指定します。

コード例

#include <psychlops.h>
using namespace Psychlops;

Psychlops::Polygon makeRegularPolygon(int n, double radius) {
	Psychlops::Polygon polygon;
	double angle;
	for(int i=0; i<n; i++)
	{
		angle = (double)i/n * 2*PI;
		polygon.append(radius*cos(angle), radius*sin(angle));
	}
	return polygon;
}

void psychlops_main() {
	Canvas canvas(Canvas::window);

	Psychlops::Polygon polygon = makeRegularPolygon(5, 100);
	polygon.centering().shift(-100,-100);

	while(!Keyboard::esc.pushed()) {
		canvas.clear();
		polygon.draw(Color::green);
		canvas.flip();
	}
}

Polygon.png

変数

Point datum
多角形の基準点
std::vector<Point> vertices
各頂点の基準点からの相対座標

関数

Polygon& append(const Point& p)
Polygon& append(const double x, const double y, const double z = 0)
頂点を追加します。座標は基準点からの相対座標です。
bool empty() const
Polygonの頂点が空かどうかを調べます。

継承した関数

Figureより

const Point getDatum()
多角形の基準点を得ます
Figure& setDatum(const Point p)
多角形の基準点を設定します
Figure& centering(const Point p)
センタリングします(原状基準点を動かすだけですが、将来的には重心やx-y平面上の中心位置を合わせる機能に変更する予定です。基準位置を合わせるだけのときはsetDatumをお使いください)
Figure& shift(const Point p)
移動します

Shapeより

virtual Polygon& draw(Drawable &target = *Drawable::prime)
virtual Polygon& draw(const Color &col, Drawable &target = *Drawable::prime)
virtual Polygon& draw(const Stroke &strk, Drawable &target = *Drawable::prime)
更新日時:2010/04/11 13:54:26
キーワード:[Class] [Figure] [Shape] [Graphic]
参照:[リファレンスマニュアル]