1

塗りつぶさずに GraphicPath から Gdi+ Region を取得する必要がありますが、その方法がわかりません。

ドローは言葉よりも優れているので、私がやりたいことは次のとおりです。

私がしたいこと

  1. 塗りつぶされていない状態で表示されるよりも、楕円があります (既知の線幅で)
  2. 私は完全な長方形を持っており、楕円からそれ自体を減算したいと考えています。
  3. 次に、塗りつぶされていない楕円を、減算された部分で取得したい

だから、ここに私のコードがあります:

// lGraphics and lBrush defined upper...

// Graphic paths
GraphicsPath lGraphicPathEllipse;
GraphicsPath lGraphicPathRectangle;

// Rectangles
Rect lRectEllipse(0, 0, 100, 100);
Rect lRectRectangle(10, -10, 100, 80);

// Add the shapes to the graphic pathes
lGraphicPathEllipse.AddEllipse(lRectEllipse);
lGraphicPathRectangle.AddRectangle(lRectRectangle);

// Create the regions
Region lRegionEllipse(&lGraphicPathEllipse);
Region lRegionRectangle(&lGraphicPathRectangle);

// Exclude the rectangle from the ellipse
lRegionEllipse.Exclude(&lRegionRectangle);

// Draw the ellipse region
lGraphics->FillRegion(&lBrush, &lRegionEllipse);

問題は、私が実際に得たものがこれであるということです:

私が得るもの

GraphicPath から Region を作成すると、自動的に領域が塗りつぶされるようです。アウトラインのみで GraphicPath から Region を取得することは可能ですか? たとえば、ペンや線幅を指定することによって?

GraphicPath Widen 関数について読んだことがありますが、実際には私が望んでいることはできません。

このような単純なことができないのは奇妙です。

または多分私は何かを逃した !

助けてくれてありがとう、そして良い一日を。

アレックス。

4

0 に答える 0