2014-10-08 2 views
0

Учитывая двумерный многоугольник, состоящий из множества точек, я ищу, чтобы рисовать штриховку внутри полигона. Вылупляясь, я имею в виду равномерные линии, все около 45 градусов.Вылупление двумерного многоугольника

У меня возникли проблемы с мыслью о том, как заставить это работать, что не будет очень медленным, хотя нужно проверить каждую перспективную линию на все края многоугольника для пересечения.

Кто-нибудь знает, как подойти к этому или какие-либо существующие методы, которые могут сработать?

Спасибо.

+0

вы пробовали просто использовать 'FillPolygon' используя isntance из' HatchBrush' в качестве кисти для заливки? У HatchBrush есть свойство, называемое 'HatchStyle', которое имеет много разных стилей, например' ForwardDiagonal', который рисует линии штриховки в верхнем левом углу вправо. –

+0

смотрите здесь http://stackoverflow.com/a/25052821/2521214 – Spektre

ответ

1

Вы можете использовать FillPolygon и HatchBrush вроде этого:

protected override void OnPaint(PaintEventArgs e) 
{ 
    base.OnPaint(e); 

    //A using statement on the brush will make sure it is disposed. 
    using (var b1 = new HatchBrush(HatchStyle.ForwardDiagonal, Color.Red)) 
    { 
     PointF[] points = methodThatReturnsPointsForAPolygon(); 
     e.Graphics.FillPolygon(b1, points); 
    } 
} 
+0

Я должен был быть более конкретным, извините. Фактическая графика выполняется с использованием API (называемого HOOPS). У этого есть все обычное вещество геометрии (линии, кривые, полигоны и т. Д.) И что я думаю, что вам нужно будет вылупиться, но ничего подобного тому, что вы упомянули выше. – djcmm476

Смежные вопросы