11

質問がすべてを物語っていますが、

Line()2 点間に線分を描画する関数 を知っています。

線分の2点も使用して、線分ではなく線描く必要があります。


[EN: 質問に対する回答として以前に投稿されたものを編集]

私はあなたのソリューションを使用しましたが、水平線では良い結果が得られましたが、垂直線ではまだ問題がありました.

たとえば、600x600 ピクセルの画像でポイント [306,411] と [304,8] (紫) と描画線 (赤) を使用する例を以下に示します。ヒントはありますか?

ここに画像の説明を入力

4

4 に答える 4

6

これを行うには、関数を自分で作成する必要があります。線を ax+by+c=0 形式にしてから、画像の 4 つのエッジと交差させることをお勧めします。[abc] の形式の線がある場合、別の線との交点を見つけることは、単に 2 つの外積であることを思い出してください。画像の端は次のようになります

top_horizontal =    [0 1 0];
left_vertical   =   [1 0 0];
bottom_horizontal = [0 1 -image.rows];
right_vertical =    [1 0 -image.cols];

また、ポイント間の距離について何か知っている場合は、各方向の線に沿って非常に遠くにあるポイントを選択することもできます.Line()に渡されたポイントが画像上にある必要はないと思います.

于 2012-10-31T15:41:33.753 に答える