Я хочу нарисовать одну непрерывную линию / кривую разной толщины с помощью C #. Если я установлю фиксированную ширину пера, толщина не изменится. Как можно изменить толщину линии при ее рисовании? Любая помощь приветствуется.
Нарисуйте линии разной толщины
Ответы (2)
Общий подход: разделите линию на сегменты / точки и сделайте несколько вызовов отрисовки разными перьями (как упоминалось в других сообщениях).
Теперь о кривых - если вы не хотите повторно реализовывать их алгоритмы, вы можете использовать GraphicsPath
для преобразования произвольных путей в линейные сегменты (с достаточным разрешением).
- добавьте свой путь (линии, кривые, кривые Безье, ...) к новому экземпляру
GraphicsPath
- вызовите
Flatten
, чтобы позволитьGraphicsPath
выполнить магию (= преобразование только в строки) - перебрать
PathPoints
, чтобы получить конечные точки соответствующих сегментов линии - разделите их дальше, пока они не станут достаточно короткими для вашей стратегии "варьирования" пера.
path2
- person olydis; 12.09.2013
Вы можете изменить толщину линии, только если вы проведете линию точка за точкой, а затем измените толщину точек.
Чтобы узнать, как рисовать линии по точкам, поищите алгоритмы рисования линий, если у вас их нет под рукой. Одним из примеров рисования прямых линий является алгоритм Брезенхема. Вы можете узнать об этом больше на http://en.wikipedia.org/wiki/Bresenham. s_line_algorithm.
Затем, когда вы рисуете точку, вы можете выбрать ее толщину. Таким образом, вместо того, чтобы просто рисовать один пиксель, вы рисуете круг с радиусом r, где r - это толщина линии, которую вы хотите в этой позиции на линии.