次の3つのポイント、、があり、次のA
図B
にC
示すようになっているとします。
ポイントは常に垂直オフセットに従ってソートされるため、最上部のポイントは常にAです。BとCが同じy座標を持つ場合があります。
点Dのx座標を見つけようとしています。点A.y
とC.y
で補間することにより、DのY座標を見つけることができます(B.y / (C.y - A.y))
。次の式を使用して補間を行っています(C ++の場合)
float linearInterpolation(float a, float b, float t)
{
return a + (t * (b - a));
}
つまり、D.y = linearInterpolation(A.y, C.y, (B.y - A.y) / (C.y - A.y))
要約すると、私の質問は次のとおりです。どうすれば見つけることができますD.x
か?
ありがとう
-
答え:
明確にするために、提案されて機能したソリューションは次のとおりです。
D.x = A.x + (B.y - A.y) * (C.x - A.x) / (C.y - A.y);
D.y = B.y;
下の画像に示すように: