OpenSiv3D icon indicating copy to clipboard operation
OpenSiv3D copied to clipboard

LineString::calculateRoundBuffer() で始点と終点が一致するときに終端が丸くならない

Open Raclamusi opened this issue 11 months ago • 0 comments

始点と終点が一致するような LineString のバッファを LineString::calculateRoundBuffer() で計算するとき、得られるポリゴンの終端が丸くならない問題があります。

# include <Siv3D.hpp>

void Main()
{
	Window::Resize(300, 200);

	const LineString lineString
	{
		Vec2{ 150, 50 },
		Vec2{ 92, 150 },
		Vec2{ 208, 150 },
		Vec2{ 150, 50 },
	};

	const auto polygon = lineString.calculateRoundBuffer(10);

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

スクリーンショット


ただ、これは明らかに意図的に書かれた処理で、こうしないといけない理由があったのかどうか気になります。

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

Raclamusi avatar Feb 29 '24 16:02 Raclamusi