0

一連の線を描画して移動したいが、線 1 の終点と線 2 の始点を接続したい ... 線 1 または 2 を移動すると ... 他の線はその変更によって影響を受ける点

ここで例を使用します Graphic - DrawLine - 線を描画して移動します

コードを少し変更して、線を引くようにします

void LineMover_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
    e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

    var pen = new Pen(Color.Black, 2);
    e.Graphics.DrawLine(pen, Lines[0].StartPoint, Lines[0].EndPoint);
    e.Graphics.DrawLine(pen, Lines[0].EndPoint, Lines[2].StartPoint);
    e.Graphics.DrawLine(pen, Lines[2].StartPoint, Lines[2].EndPoint);
}

しかし、それらを移動すると、必要なものがありません...助けはありませんか??

4

1 に答える 1

1

アプリケーションで見られる効果が何であるかを書いていません。これは役に立ちます。ただし、提供されたコードを見ると、インデックスに問題があるようです。後続の行を使用するには、 02の代わりにインデックス0とインデックス1を使用する必要があります。

このコードを試してください:

void LineMover_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
    e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;



        var pen = new Pen(Color.Black, 2);
        e.Graphics.DrawLine(pen, Lines[0].StartPoint, Lines[0].EndPoint);
        e.Graphics.DrawLine(pen, Lines[0].EndPoint, Lines[1].StartPoint);
        e.Graphics.DrawLine(pen, Lines[1].StartPoint, Lines[1].EndPoint);

}

それがあなたのために働くかどうか私に知らせてください。そうでない場合は、それに関するより詳細な情報を提供してください。

もう 1 つの質問は、隣の線に接続された 2 本以上の線だけを描きたいかどうかです。より多くの線を描画するには、Graphics.DrawLines()メソッドの使用を検討できます。接続された線のセットを定義する点の配列を指定できます。詳細とサンプル コードは、http: //msdn.microsoft.com/en-us/library/7ewkcdb3.aspxにあります。

于 2012-06-25T19:28:50.550 に答える