OpenSiv3D icon indicating copy to clipboard operation
OpenSiv3D copied to clipboard

LineString::calculateRoundBuffer() でサイズが1のときに円を返す提案

Open Raclamusi opened this issue 11 months ago • 3 comments

サイズが1の LineString に対して .calculateRoundBuffer() を呼んだとき、現在は空のポリゴンが返りますが、円のポリゴンを返すようにすることを提案します。 この方がより自然な挙動だと思います。

# include <Siv3D.hpp>

void Main()
{
	const LineString lineString
	{
		Vec2{ 400, 300 },
	};

	// 円ができるほうが自然ではないか?
	const auto polygon = lineString.calculateRoundBuffer(10);

	while (System::Update())
	{
		polygon.draw();
	}
}

実装は、以下のコードの条件を points.size() < 1 に変更するだけです。

https://github.com/Siv3D/OpenSiv3D/blob/a5a6d7bf1e0399a53607eebd956472fd15026c55/Siv3D/src/Siv3D/Polygon/PolygonDetail.cpp?ts=4#L1293-L1296

Raclamusi avatar Feb 29 '24 17:02 Raclamusi