使用Color GDI +填充箭头HEAD

时间:2014-09-10 05:45:21

标签: windows gdi+

我想制作一个带有填充颜色的箭头 所以我创建了一个grahics路径并调用绘制填充

Brush *brush=new SolidBrush(Color::Blue);

Pen *myPen1 = new Pen(Color::Red, 2);
GraphicsPath *cappath=new GraphicsPath;

cappath->AddLine(-5,0,5,0);
cappath->AddLine(-5,0,0,5);
cappath->AddLine(0,5,5,0);
graphics.FillPath(brush,cappath);
CustomLineCap path(NULL,cappath);

myPen1->SetCustomEndCap(&path);

但是它会在原点附近创建一条蓝色路径。如何在帽子中填充蓝色

1 个答案:

答案 0 :(得分:0)

  1. GDI只能正确填充封闭的凸多边形

    • polygon由顶点集(点)
    • 定义
    • 按正确顺序
  2. 我不知道GDI +

    • 但是从您的代码中,您将多边形设置为行集而不是点而不是正确的顺序
    • 所以尝试改变点的顺序以形成闭合的凸多边形这就是我的意思:

    polygon lines

    • 黑色是您当前的代码,绿色是封闭的凸多边形

      cappath->AddLine( 5,0,-5,0);
      cappath->AddLine(-5,0, 0,5);
      cappath->AddLine( 0,5, 5,0);
      
    • 如果它不起作用,请尝试找到如何将路径添加到路径而不是行

    • 或使用GDI polygon
  3. [注释]

    • 某些功能可能会影响多边形填充
    • 例如剔除面可以拒绝不正确顺序的多边形(CW / CCW)
    • GDI没有这样的东西,但GDI + ???
    • 只是为了确保尝试也反转所有要点
    • 您是否启用了Solid Brush?