tôi đang cố gắng để tạo ra một bản đồ nhiệt với gradient mà trông tương tự như sau: gradient phong cách Heatmap trong .NET
Hình ảnh này cho thấy ba điểm và gradient pha trộn độc đáo với nhau.
Đây là những gì tôi hiện đang làm trong chức năng vẽ của tôi:
public void DrawGradient(int x, int y, Graphics g) {
using (var ellipsePath = new GraphicsPath()) {
var bounds = new Rectangle(x, y, 100, 100);
ellipsePath.AddEllipse(bounds);
var brush = new PathGradientBrush(ellipsePath);
Color[] colors = {
Color.FromArgb(64, 0, 0, 255),
Color.FromArgb(140, 0, 255, 0),
Color.FromArgb(216, 255, 255, 0),
Color.FromArgb(255, 255, 0, 0)
};
float[] relativePositions = {0f,0.25f,0.5f, 1.0f};
ColorBlend colorBlend = new ColorBlend();
colorBlend.Colors = colors;
colorBlend.Positions = relativePositions;
brush.InterpolationColors = colorBlend;
g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver;
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
g.FillEllipse(brush, bounds);
}
}
nào tạo ra một hình ảnh như thế này cho hai điểm chồng chéo:
Nó không pha trộn. Làm thế nào tôi có thể tạo ra một hiệu ứng pha trộn gradient trong một bản vẽ .NET?
Xem các nhận xét bổ sung về mã (thú vị) của bạn và các vấn đề của nó ..! Nếu bạn có bất kì câu hỏi nào, xin vui lòng hỏi!! – TaW