3 つの異なる点 (または座標) が与えられたとして、これら 3 つの点を接続することによって形成できる水平または垂直の線分の数を見つけたいとします。このような線分はポリラインとも呼ばれます。この問題を解決するには、計算幾何学の概念が必要です。この記事では、C でこの問題を解決するさまざまな方法について説明します。
c1、c2、c3 がデカルト平面上の 3 点の座標であると仮定します。この3点を結ぶ水平または垂直の線分の数は以下のようになります。
リーリーNote - 水平線分と垂直線分は座標軸と一致している必要があります。
if ステートメントを使用して、これら 3 つの点の間に水平線または垂直線があるかどうかを確認できます。
c1.x と c2.x、c1.x と c3.x、および c2.x## を組み合わせて関数を作成します #および c3.x。いずれかの条件が満たされた場合、水平線分が存在することを意味し、カウントが増加します。
c1.y と c2.y、 c1.y と c3.y、および c2 を結合します。 y および c3.y。いずれかの条件が満たされる場合、垂直線分は存在します。またカウントが増えていきます。
3 つの点すべてがデカルト平面の同じ軸、つまり X 軸または Y 軸上にある場合、線分の数はそれらを接続するために必要な値は 1 です。点が L 字型を形成している場合、結果は 2 になり、そうでない場合、結果は 3 になります。 補助機能を使用する
ここでは、補助関数 (デカルト座標系では、水平線のすべての点が同じ y 座標上にあるという事実を利用します。 horizontalLine
この関数は、2 つの点の y 座標を比較することによって、2 つの点が水平線分を形成できるかどうかを確認します。 y 座標が同じ場合、水平線が表示されます。同様に、垂直線のすべての点は同じ x 座標にあります。 verticalLine
関数は、2 つの点の x 座標を比較することによって、垂直線分を形成できるかどうかをチェックします。 x 座標が同じ場合、垂直線が表示されます。次に、水平および垂直の線分の数をカウントするために使用される countLineSegments
関数があります。水平または垂直の線分がある場合、反復のたびにカウントが増加します。###例### リーリー ###出力### リーリー ###結論は### この記事では、C を使用して、デカルト平面内の 3 つの異なる点を結ぶ水平線と垂直線の数を求めるさまざまな方法を検討します。この問題を解決するための
if以上が3 点を結ぶのに必要な水平または垂直の線分の数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。