魔法陣
https://scrapbox.io/files/64414875739542001b365055.png
使い方
MagicCircle(Circle 円,ColorF 色);
用途
魔法演出などに使えます。
コード
code:魔法陣.cpp
# include <Siv3D.hpp>
void MagicCircle(const Circle& circle, const ColorF& color)
{
const Vec2 center = circle.center;
const double r = circle.r;
const double rate = circle.r / 135;
for (auto i : step(2))
{
const double d = (i == 0 ? 3 * rate : 2 * rate);
const ColorF c = (i == 0 ? color : ColorF{ 1 });
Circle(center, r).drawFrame(d, c);
Circle(center, 120 * rate).drawFrame(d, c);
Triangle(center, 200 * rate).drawFrame(d, c);
Triangle(center, 200 * rate, 180_deg).drawFrame(d, c);
Shape2D::NStar(24, r, 120 * rate, center).drawFrame(d, c);
Shape2D::NStar(24, r, 120 * rate, center, 180_deg / 24).drawFrame(d, c);
for (int32 j : step(6))
{
const double theta = j * 60_deg + 30_deg;
const Vec2 vec = OffsetCircular{ center, 95 * rate, theta };
Circle{ vec, 15 * rate }.drawFrame(d, c);
}
}
}
void Main()
{
while (System::Update())
{
MagicCircle(Circle{ 400,300, 200 }, HSV{ Scene::Time() * 60 });
}
}