Создание Heatmap в vb.net исчезает между кругами - PullRequest
0 голосов
/ 20 июня 2019

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

enter image description here

Но как я могу исчезать между серыми кругами? Есть ли простой способ?

Вот как я рисую свои круги в данный момент:

        Dim tmpBitmap As New Bitmap(300, 300)
    With Graphics.FromImage(tmpBitmap)
        '.DrawLine(...)
        '.DrawString(...)
        Dim pth As New GraphicsPath()
        pth.AddEllipse(0, 0, 150, 150)
        Dim pgb As New PathGradientBrush(pth)
        pgb.SurroundColors = New Color() {Color.DarkGray}
        pgb.CenterColor = Color.Black
        .FillRectangle(pgb, 0, 0, 150, 150)

        Dim pth2 As New GraphicsPath()
        pth2.AddEllipse(100, 0, 150, 150)
        Dim pgb2 As New PathGradientBrush(pth2)
        pgb2.SurroundColors = New Color() {Color.DarkGray}
        pgb2.CenterColor = Color.Black
        .FillRectangle(pgb2, 100, 0, 150, 150)

    End With

Спасибо!

Edit: Мне это нужно для приложения, очень похожего на то, что делает netspot (www.netspotapp.com), поэтому мне нужно установить точки с помощью измерений, и я хочу, чтобы это выглядело как тепловая карта. Как это:

enter image description here

Edit2:

Образец с помощью LinearGradientBrush. Если я использую LinearGradientBrush (потому что это проще для тестирования) Я поставил две точки:

        .DrawEllipse(Pens.Black, 45, 45, 10, 10)
        .DrawEllipse(Pens.Black, 145, 145, 10, 10)

После этого я создаю LinearGradientBrush с началом круга.

Dim tmpBrush As New Drawing2D.LinearGradientBrush(New Point(50, 50), New Point(150, 150), Color.FromArgb(0, 0, 0), Color.FromArgb(100, 100, 100))
.FillRectangle(tmpBrush, 0, 0, 500, 500)

Это результат, но я не понимаю, как добавить, например, третью точку.

enter image description here

...