0

ノードのネットワークを視覚的に表現する .NET アプリケーションを作成しようとしています。ノードは、マウスでドラッグできる Drawing.Rectangle インスタンスであり、接続は Graphics.DrawLine で作成されます。以下のように。

通信網

四角形がドラッグされたときに見苦しい列車を残して再描画されるのを避けるために、コンポーネントで Graphics.Clear を呼び出し、Mouse_Move の呼び出しごとに各四角形と線を再描画しています。しかし、これは非常に醜い点滅効果をもたらし、十分に速く呼び出されていないと考えています...

さわやかで滑らかに見えるように、.NET関数またはこのシーンを再描画するより良い方法はありますか?

私のコード:

    private void NodesPanel_MouseMove(object sender, MouseEventArgs e)
    {
        if (MouseButtons.Left == e.Button)
        {

            if (currentlyClickedNode != null)
            {
                surface.Clear(Color.White);
                drawUnselectedNodes();
                drawConnections();

                if (!ClickedNodeGate) // Clicked on the node
                {
                    currentlyClickedNode.setPosition(e.X - QuestNode.NODE_WIDTH / 2, e.Y - QuestNode.NODE_HEIGHT / 2);
                    currentlyClickedNode.drawMe(surface, penl);
                }
                else // clicked on the gate
                {
                    drawingLine = true;
                    currentlyClickedNode.drawMe(surface, penl);
                    DrawingHelper.DrawLine(surface, penl, currentlyClickedNode.getGatePosition(), new Vector2D(e.X, e.Y));
                }
            }
        }
    }

あなたが与えることができるかもしれないどんな助けにも感謝します.

4

1 に答える 1

1

これは非常に複雑なトピックであり、文字通り何千もの異なる方法があります。Windows のグラフィックスとウィンドウ サブシステムについてさらに学習する必要があります。http://shop.oreilly.com/product/0790145369079.doから始めることをお勧めします。

于 2012-11-05T18:06:50.580 に答える