Могу ли я избежать плохого / отличного рендеринга FillPolygon и DrawPolygon? - PullRequest
2 голосов
/ 12 декабря 2008

Я использую FillPolygon с полупрозрачным цветом для рисования треугольника (стрелка указателя). Я заметил, что FillPolygon дает неловкие результаты с изоцельским треугольником. Одна из сторон перекрывает сторону DrawPolygon , а две другие - нет. Я бы ожидал ничего или все, но не что-то среднее.

Вот пример: DrawPolygon использует полупрозрачный красный, а FillPolygon использует полупрозрачный зеленый. Вы можете видеть, что одна сторона коричневая, две другие стороны красные.

альтернативный текст http://www.slimcode.com/downloads/arrow.png

Координаты для этого примера: {X = 36, Y = 201}, {X = 42, Y = 207}, {X = 30, Y = 207}.

Использование непрозрачного цвета решило бы все, так как я мог бы вызывать DrawPolygon и FillPolygon, но мне нужно использовать полупрозрачный цвет. Я рисую в изображение, если оно может иметь значение.

Ответы [ 2 ]

1 голос
/ 12 декабря 2008

Вы хотите использовать растровое изображение и сделать что-то вроде этого. Обратите внимание, что это не исполняемый код.

    Dim image As New Bitmap(<my_Xsize>, <my_Ysize>)
    Dim gr As Graphics = Graphics.FromImage(image)
    <Draw your FillPolygon>
    <Erase the leftside of the polygon>
    <Draw your Polygon>

     gr.DrawImage(image, <myXcoor>, <myYcoor>)

Используя растровое изображение, вы можете перейти на уровень пикселей, чтобы получить именно то, что вам нужно.

0 голосов
/ 12 декабря 2008

Hack: нарисуйте всю стрелку как непрозрачную в промежуточном буфере, затем нарисуйте весь буфер на вашем изображении, используя соответствующую прозрачность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...