四辺形(4x,y
点で構成)を三角ストリップに変換する最速の方法は何ですか?私は存在する一般的な三角測量アルゴリズムをよく知っていますが、四辺形のみを処理する短く、十分に最適化されたアルゴリズムが必要です。
私の現在のアルゴリズムはこれを行います。これはほとんどのクワッドで機能しますが、それでも一部のクワッドではポイントが混同されます。
#define fp(f) bounds.p##f
/* Sort four points in ascending order by their Y values */
point_sort4_y(&fp(1), &fp(2), &fp(3), &fp(4));
/* Bottom two */
if (fminf(-fp(1).x, -fp(2).x) == -fp(2).x)
{
out_quad.p1 = fp(2);
out_quad.p2 = fp(1);
}
else
{
out_quad.p1 = fp(1);
out_quad.p2 = fp(2);
}
/* Top two */
if (fminf(-fp(3).x, -fp(4).x) == -fp(3).x)
{
out_quad.p3 = fp(3);
out_quad.p4 = fp(4);
}
else
{
out_quad.p3 = fp(4);
out_quad.p4 = fp(3);
}
編集:私は、単一のクワッドを4つのポイントで構成される単一の三角ストリップに変換することについて質問しています。