6

QuadraticBezierSegmentの最後に矢印を描く最も簡単な方法は何ですか? トリッキーな部分は、入ってくるライン セグメントに一致するように正しい回転を取得することです。

これをどうやって進めるかについてのアイデアはありますか?PathSegmentを拡張する必要がありますか?

最後に矢印が付いたベジエ セグメント

シンプルなベジエ線を描くためにこれを持っています。

<Path Stroke="Black" StrokeThickness="1">
  <Path.Data>
    <PathGeometry>
      <PathGeometry.Figures>
        <PathFigureCollection>
          <PathFigure StartPoint="100,430">
            <PathFigure.Segments>
              <PathSegmentCollection>
                <QuadraticBezierSegment Point1="150,250" Point2="250,300" />
              </PathSegmentCollection>
            </PathFigure.Segments>
          </PathFigure>
        </PathFigureCollection>
      </PathGeometry.Figures>
    </PathGeometry>
  </Path.Data>
</Path>
4

1 に答える 1

8

鏃頭の形状を定義することもできますが、ベジェ曲線の端に正しく配置するには試行錯誤が必要です。

代わりに、このコントロールを使用し、ジオメトリを使用して必要なエンドキャップを定義すると、「線」の端に適切に配置されます。

  • http://blogs.msdn.com/b/mrochon/archive/2011/01/10/custom-line-caps-in-wpf.aspx

    <loc:CappedLine Stroke="Red" StrokeThickness="1" Canvas.Left="40" Canvas.Top="200" RenderTransformOrigin="0.5,0.5" Height="107" Width="195">
        <loc:CappedLine.EndCap>
            <GeometryGroup>
                <LineGeometry StartPoint="0,0" EndPoint="10,10"/>
                <LineGeometry StartPoint="0,0" EndPoint="10,-10"/>
            </GeometryGroup>
        </loc:CappedLine.EndCap>
        <loc:CappedLine.LinePath>
            <PathGeometry Figures="M0,0 C1,1 10.5,75.5 48.5,66.5 86.5,57.5 5,3.5000146 105.5,16.500091 157.5,29.500166 164.5,87.500505 164.5,87.500505" />
        </loc:CappedLine.LinePath>
    </loc:CappedLine>
    
    <loc:CappedLine Stroke="Red" StrokeThickness="1" Canvas.Left="180" Canvas.Top="200" RenderTransformOrigin="0.5,0.5" Height="107" Width="195">
        <loc:CappedLine.EndCap>
            <GeometryGroup>
                <LineGeometry StartPoint="0,0" EndPoint="10,10"/>
                <LineGeometry StartPoint="0,0" EndPoint="10,-10"/>
            </GeometryGroup>
        </loc:CappedLine.EndCap>
        <loc:CappedLine.LinePath>
            <PathGeometry Figures="M0,0 C1,1 10.5,75.5 48.5,66.5 86.5,57.5 5,3.5000146 105.5,16.500091" />
        </loc:CappedLine.LinePath>
    </loc:CappedLine>
    

ここに画像の説明を入力してください

于 2012-08-31T20:32:09.553 に答える