私は、異なるセグメントタイプ(円弧、ベジェ、線分)を使用してエリアシェイプを描画するためにWPFのコントロールに取り組んでおり、複雑なエリアシェイプを作成しないようにしたいと考えています。つまり、エッジが重なる形状です。WPFのPathFigureでセグメントが重複しているかどうかを確認するよい方法はありますか?
私はコンバータで生成されたPathGeometry
を使用していますが、コンバータが終了した後、XAMLは次のXAMLのようになります。重複で
<Path x:Name="PolygonPath" Fill="Blue" Opacity="75">
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigure StartPoint="50,50" IsClosed="True" IsFilled="True">
<PathFigure.Segments>
<QuadraticBezierSegment Point1="100,0" Point2="200,50"/>
<LineSegment Point="250,50"/>
<LineSegment Point="250,200"/>
<QuadraticBezierSegment Point1="100,350" Point2="50,50"/>
</PathFigure.Segments>
</PathFigure>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
(テストを失敗する):いいえ重複と
<Path x:Name="PolygonPath" Fill="Blue" Opacity="75">
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigure StartPoint="50,50" IsClosed="True" IsFilled="True">
<PathFigure.Segments>
<QuadraticBezierSegment Point1="100,0" Point2="200,60"/>
<LineSegment Point="0,60"/>
<LineSegment Point="250,200"/>
<QuadraticBezierSegment Point1="100,350" Point2="50,50"/>
</PathFigure.Segments>
</PathFigure>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
、第二及び第三の線分<LineSegment Point="0,60"/>
と<LineSegment Point="250,200"/>
最後のセグメント<QuadraticBezierSegment Point1="100,350" Point2="50,50"/>
重なり合います。
パスがWPFの任意のポイントでパスと交差するかどうかをテストする方法がありますか?私はあなたが何ができるかと思います
について。私は複数のセグメントを持つ単一の図と一緒に作業しています。私はさらに質問を明確にしようとします。ありがとうございました。 –