10

私には 3 つの既知の位置があり、現在、次のように 2 つのラインを運転しています。

Line line = new Line
{
    StrokeThickness = 3,
    Stroke = lineColor,
    X1 = MyX,
    Y1 = MyY,
    X2 = MyX,
    Y2 = MiddleY
};

Graph.Children.Add(line);

line = new Line
{
    StrokeThickness = 3,
    Stroke = lineColor,
    X1 = MyX,
    Y1 = MiddleY,
    X2 = TargetX,
    Y2 = TargetY
};

Graph.Children.Add(line);

結果は次のとおりです。

ここに画像の説明を入力

ご覧のとおり、これは私が望んでいることのほとんどです。ただし、もう少し滑らかにしたいだけです。

今、私は3つの点を設定し、滑らか/曲線レベルを中間点に設定し、その上に無地の線を描く方法を探しています. Photoshop でこれを行う方法とよく似ています。

ここに画像の説明を入力

または、少なくとも同様の種類の滑らかさを取得します。

4

2 に答える 2

13

スプラインを探していると思います

http://msdn.microsoft.com/en-us/library/554h284b.aspx

フォームからのゲイブは正しいです

WPF では PolyBezierSegment を試すことができますが、4 ポイントが必要です。可能であれば、それを形作るために 3 点ともう 1 点を入れることができます。

<Canvas>
    <Path Stroke="Black" StrokeThickness="10">
        <Path.Data>
            <PathGeometry>
                <PathGeometry.Figures>
                    <PathFigureCollection>    
                        <PathFigure StartPoint="100,80">
                            <PathFigure.Segments>
                                <PathSegmentCollection>
                                    <PolyBezierSegment Points="90,200 140,200 160,200 180,200 430,190 430,280" />
                                </PathSegmentCollection>
                            </PathFigure.Segments>
                        </PathFigure>
                    </PathFigureCollection>
                </PathGeometry.Figures>
            </PathGeometry>
        </Path.Data>
    </Path>
</Canvas>

これにより、次の曲線が得られます

ここに画像の説明を入力

于 2012-05-07T19:07:10.760 に答える
2

特にBezierSegmentsのセットでPathFigureを使用したいとします。

于 2012-05-07T19:23:09.007 に答える