6 #include <Framework/IShape.h>
28 Circle(
double X座標,
double Y座標,
double 半径) :
37 shape->zoomX = this->
zoomX;
38 shape->zoomY = this->
zoomY;
42 void SetPos(
double X座標,
double Y座標)
override
60 void Move(
double X移動量,
double Y移動量)
override
66 double GetX()
const override
71 double GetY()
const override
76 double GetW()
const override
81 double GetH()
const override
86 void Draw(
const Color &描画色)
const override;
90 return shape->
Hit(
this);
94 for (
auto it : complex->
shapes)
96 if (it->Hit(
this))
return true;
104 (point->
x - this->x) * (point->
x - this->x) + (point->
y - this->y) * (point->
y - this->y)
106 (this->radius * this->radius)
117 (this->
x - circle->
x) * (this->x - circle->
x) + (this->y - circle->
y) * (this->y - circle->
y)
119 (this->radius + circle->
radius) * (this->radius + circle->
radius)
131 this->
x - this->radius <= rect->GetRight()
137 this->y <= rect->GetBottom()
145 this->x <= rect->GetRight()
151 this->
y - this->radius <= rect->GetBottom()
155 (this->
x - rect->
GetLeft()) * (this->
x - rect->
GetLeft()) + (this->
y - rect->
GetTop()) * (this->
y - rect->
GetTop()) <= (this->radius * this->radius)
double GetThickHarf() const
太さの半分を取得.
Definition: Line.h:208
矩形を表す図形クラス.
Definition: Rect.h:22
double y
座標
Definition: Point.h:26
void Draw(const Color &描画色) const override
描画する.
Definition: ShapeDraw.h:38
太さのある線を表す図形クラス.
Definition: Line.h:20
double GetBottom() const
下端のY座標を取得.
Definition: Rect.h:136
double GetX() const override
X座標を取得.
Definition: Circle.h:66
IShape * Clone(double X座標, double Y座標) const override
同じ形の図形を作る.
Definition: Circle.h:34
double GetTop() const
上端のY座標を取得.
Definition: Rect.h:124
double GetRight() const
右端のX座標を取得.
Definition: Rect.h:130
bool Hit(const Line *line) const override
衝突判定.
Definition: Circle.h:109
double GetLeft() const
左端のX座標を取得.
Definition: Rect.h:118
bool Hit(const Rect *rect) const override
衝突判定.
Definition: Circle.h:122
std::vector< IShape * > shapes
保持するShape
Definition: Complex.h:23
double x
座標
Definition: Circle.h:23
点を表す図形クラス.
Definition: Point.h:22
void Move(double X移動量, double Y移動量) override
相対座標で移動.
Definition: Circle.h:60
衝突判定可能な図形の抽象クラス.
Definition: IShape.h:21
virtual bool Hit(const IShape *iShape) const =0
衝突判定.
double y
座標
Definition: Circle.h:24
複合図形を表すクラス.
Definition: Complex.h:20
bool Hit(const Point *point) const override
衝突判定.
Definition: Circle.h:100
double GetY() const override
Y座標を取得.
Definition: Circle.h:71
色を表すクラス.
Definition: Color.h:11
bool Hit(const Circle *circle) const override
衝突判定.
Definition: Circle.h:113
void MultiZoom(double 倍率X, double 倍率Y) override
縦横別で拡大率を掛け算する.
Definition: Circle.h:48
double GetH() const override
高さを取得.
Definition: Circle.h:81
bool Hit(const IShape *shape) const override
衝突判定.
Definition: Circle.h:88
void SetPos(double X座標, double Y座標) override
指定座標に移動.
Definition: Circle.h:42
double zoomX
図形の拡大率
Definition: IPosition.h:14
double x
座標
Definition: Point.h:25
double GetW() const override
幅を取得.
Definition: Circle.h:76
bool LinePoint(double px, double py, double range) const
線と点の当たり判定.
Definition: Line.h:291
Circle(double X座標, double Y座標, double 半径)
コンストラクタ.
Definition: Circle.h:28
円を表す図形クラス.
Definition: Circle.h:20
double zoomY
図形の拡大率
Definition: IPosition.h:15
bool Hit(const Complex *complex) const override
衝突判定.
Definition: Circle.h:92
double radius
半径
Definition: Circle.h:25
void Rotate(double 回転する角度) override
回転する.
Definition: Circle.h:56