English 中文(简体)
图形路径 - AddLine 方法的顺序为什么很重要
原标题:
  • 时间:2009-01-28 18:58:51
  •  标签:

我用以下代码画一个三角形。

int x = x coordinate for center;
int ax = x coordinate for left;
int bx = x coordinate for right;
int top = y coordinate for top;
int bottom = y coordinate for bottom;

//           (x, top)
//(ax, bottom)      (bx, bottom) 

GraphicsPath path = new GraphicsPath();
// _
path.AddLine(ax, bottom, bx, bottom);
// /
path.AddLine(ax, bottom, x, top);
// 
path.AddLine(bx, bottom, x, top);
// order of drawing is _ /  (bottom line, left side, right side)

当我调用DrawPath时,它总是绘制我的线条,而不管顺序如何。但是当我调用FillPath时,它什么也不做。只有当我的顺序是 / _ 或 _ / 时,我的三角形才会填充。为什么会这样?

最佳回答

事实证明,我最初发布的答案并没有真正解决问题,它之所以在我的机器上工作,是因为我引入了一个额外的更改,即更改 FillMode

GraphicsPath path = new GraphicsPath(FillMode.Winding);

当您使用绕组模式时,算法会检测到封闭路径,即使您没有按顺序添加线路。

问题回答

暂无回答




相关问题
热门标签