QuadWarp
https://gyazo.com/3db40c478602f812570d61d12bca5379
バージョン: v0.8
code:cpp
# include <Siv3D.hpp> // Siv3D v0.8.0
void Main()
{
Window::Resize(1280, 720);
const Texture texture{ U"🔥"_emoji, 256 };
while (System::Update())
{
Scene::Rect().draw(Pattern::Checker{ ColorF{ 0.2 }, ColorF{ 0.25 }, 40 });
const Vec2 center = Cursor::Pos();
DefaultRNG rng{ 123456u };
for (int32 y : Range(-1, 1))
{
for (int32 x : Range(-1, 1))
{
const RectF rect{ Arg::center((640 + 200 * x), (360 + 200 * y)), 180 };
Quad q{ rect.tl(), rect.tr(), rect.br(), rect.bl() };
q.p0 += ((q.p0 - center) * 0.1).rotate(RandomAngle(rng));
q.p1 += ((q.p1 - center) * 0.1).rotate(RandomAngle(rng));
q.p2 += ((q.p2 - center) * 0.1).rotate(RandomAngle(rng));
q.p3 += ((q.p3 - center) * 0.1).rotate(RandomAngle(rng));
q.drawFrame(2, ColorF{ 0.9, 0.7, 0.3 });
texture.drawQuadWarp(q);
}
}
}
}