Member 13790316 Ответов: 1

Радиальный градиентный полигон C#


Привет, я хочу сделать программу , которая возьмет координаты X и Y из файла, и это будет страна. Я сделал это с помощью полигона, массива с точками, и все. Но мне нужно заполнить это 3 цветами, с радиальным градиентом от синего до желтого и от желтого до оранжевого. Как я могу сделать этот радиальный градиент ?

Фото с результатом того, что мне нужно сделать : <a

EDIT: я пытался получить центр , и он работает только для желтого и синего цветов, но мне нужно быть синим, желтым и оранжевым.

Что я уже пробовал:

Я пытался сделать что-то подобное , но у меня ничего не получится :
using (PathGradientBrush path_brush = new PathGradientBrush(curvepoints))
{
    path_brush.CenterPoint = new Point(this.ClientSize.Width / 2, this.ClientSize.Height / 2);
    path_brush.CenterColor = Color.Blue;
    path_brush.SurroundColors = new Color[] { Color.Orange Color.Yellow };
    g.FillPolygon(path_brush, curvepoints);
}

Richard MacCutchan

"не работает"
Что это значит?

OriginalGriff

"Это не работает", вероятно, самый бесполезный отчет о проблеме, который мы получаем - и мы получаем его много. Она ничего не говорит нам о том, что происходит или когда это происходит.
Итак, расскажите нам, что он делает, чего вы не ожидали, или не делает, что вы сделали.
Расскажите нам, что вы сделали, чтобы это произошло.
Сообщайте нам о любых сообщениях об ошибках.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

Member 13790316

Я отредактировал , теперь проблема заключается в третьем цвете

0x01AA

Может быть, у вас есть какие-то идеи здесь: Градиенты сделаны легко[^]

и вообще тоже здесь:Гугл[^]

1 Ответов

Рейтинг:
7

Gerry Schmitz

Это "тепловая карта".

Найдите "центр".

Затем пиксели, начиная от центра, окрашиваются в зависимости от их относительного расстояния от ближайшей границы. Используйте (процентные) диапазоны для "полос".

(Или это "деформация"; радиального градиента в пределах определенного полигона; "пересчет" "радиуса" на основе относительных расстояний снова.