2014-09-10 4 views
0

Я хотел сделать голова со стрелкой с заполненным цветом так я создал путь grahics и вызвать начертить заполнитьНаполните наконечник стрелу с цветом GDI +

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); 

Но создать синий путь рядом с origin.How для заполнения синий цвет в кепке

ответ

0
  1. GDI может заполнить только закрытые выпуклые многоугольники правильно

    • полигона определяется множество вершин (точки)
    • в правильном порядке
  2. GDI + мне неизвестно

    • , но из вашего кода вы устанавливаете полигон, как набор линий вместо точек а не в правильном порядке
    • поэтому попробуйте изменить порядок точек, чтобы сформировать замкнутый выпуклый многоугольник это то, что я имею в виду:

    polygon lines

    • Черный ваш текущий код и зеленый закрыт выпуклый многоугольник

      cappath->AddLine(5,0,-5,0); 
      cappath->AddLine(-5,0, 0,5); 
      cappath->AddLine(0,5, 5,0); 
      
    • , если он не работает, либо попытаться найти способ добавления точек пути вместо линий

    • или использование полигона GDI

[примечания]

  • некоторые функции могут помешать многоугольник заполняющей
  • , например отбраковки лицо может отказаться от полигонов не правильный порядок (CW/CCW)
  • GDI не имеет такую ​​вещь, но GDI + ?? ?
  • для того, чтобы быть уверенным, что все наоборот:
  • Также у вас есть Solid Brush?
Смежные вопросы