Нарисуйте текст на сегменте линии в C#

В этом примере показано, как вы можете нарисовать текст в сегменте линии. Ключ - это метод DrawTextOnSegment, показанный в следующем коде. Этот метод может нарисовать текст на сегменте линии или ниже сегмента линии.

Код начинается с получения вектора длины единицы & lt; dx, dy & gt;, указывающего в направлении отрезка линии. Затем он вводит цикл, делающий дольше и длиннее строки, пока не найдет тот, который не будет помещаться в сегмент линии. Затем он удаляет последний добавленный символ, чтобы получить самую длинную подстроку, которая будет соответствовать.

Если самая длинная подстрока пуста, метод возвращается без рисования. Если каждый символ подходит, код устанавливает последний символ последним в строке.

Далее код сохраняет состояние объекта Graphics, чтобы код мог отменить последующие преобразования.

Если метод должен нарисовать текст над сегментом линии, код добавляет перевод в объект Graphics, чтобы переместить текст вверх по высоте текста.

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

Наконец, код рисует текст в начале. Преобразования вращаются и позиционируют текст соответствующим образом.

Источник: http://csharphelper.com/blog/2016/01/draw-text-on-a-line-segment-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *