図形のグラデーション

Siv3D Advent Calendar 2013, 16 日目の記事です。
今日は December 2013 の新機能、図形のグラデーションを紹介します。

グラデーションに対応したのは Line / Rect / Triangle / Quad の 4 つの図形です。draw() メソッドで、単一の Color の代わりに { } を使って頂点色のリストを渡します。

# include <Siv3D.hpp>

void Main()
{
	while (System::Update())
	{
		Line({ 20, 20, 300, 40 }).draw(5.0,
		{ Palette::Red, Palette::Yellow });

		Triangle(450, 200, 250).draw(
		{ Color(255), Color(255, 0, 0), Color(0, 255, 0) });

		Rect(50, 50, 200, 200).draw(
		{ Palette::Blue, Palette::Blue, Palette::White, Palette::White });

		Quad({ 200, 300 }, { 400, 300 }, { 500, 400 }, { 100, 400 }).draw(
		{ Alpha(255), Alpha(255), Alpha(0), Alpha(0) });
	}
}

Rect と Quad は頂点分割の都合上 2 頂点 - 2 頂点以外のグラデーションが綺麗に出せないことがあるので注意してください。