Закрасить часть фигуры «Инь-Янь» c#?

iisz4nfynusx.jpg

Всем привет, интересует каким методом можно закрасить каплеобразную часть фигуры(на рисунке черная). Не могу понять, так как рисовал ее с помощью двух дуг, а fillPie не подойдет соотвественно((
  • Вопрос задан
  • 3682 просмотра
Решения вопроса 1
Mrrl
@Mrrl
Заводчик кардиганов
Проще всего чередовать рисование чёрным и белым - нарисовать чёрный полукруг, потом 4 круга и внешнюю окружность. Как-то так:

private static void DrawYinYang(Graphics gr,int xctr,int yctr,int rmax,int rint,int ysmall,int rsmall) {
            Brush white=Brushes.White;
            Brush black=Brushes.Black;
            Pen BlackPen=new Pen(Color.Black,2*(rmax-rint));

            gr.FillPie(black,xctr-rmax,yctr-rmax,2*rmax,2*rmax,-90,180);
            gr.FillEllipse(white,xctr-rint/2,yctr-rint,rint,rint);
            gr.FillEllipse(black,xctr-rint/2,yctr,rint,rint);
            gr.FillEllipse(white,xctr-rsmall,yctr+ysmall-rsmall,2*rsmall,2*rsmall);
            gr.FillEllipse(black,xctr-rsmall,yctr-ysmall-rsmall,2*rsmall,2*rsmall);
            double rcircle=(rmax+rint)/2.0;
            gr.DrawEllipse(BlackPen,(float)(xctr-rcircle),(float)(yctr-rcircle),(float)(2*rcircle),(float)(2*rcircle));
        }

Если же хочется именно закрасить криволинейную фигуру, надо изучать, что такое GraphicPath, и использовать FIllRegion. Но я так не пробовал.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@aleyer
Я думаю, после взгляда на это изображение, все станет ясно. 2 каплеобразные фигуры - это pie с разделением пополам и 2 круга диаметром в половину диаметра символа.
По реализации именно на C# не подскажу, им не владею.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы