C#如何绘制光谱图C#如何实现光谱图,如图!即如何控制RGB的权值生成渐变色
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/08 02:14:35
C#如何绘制光谱图
C#如何实现光谱图,如图!
即如何控制RGB的权值生成渐变色
![](http://img.wesiedu.com/upload/8/57/8578d19000b40bd86c2e92bac5d7599d.jpg)
C#如何实现光谱图,如图!
即如何控制RGB的权值生成渐变色
![](http://img.wesiedu.com/upload/8/57/8578d19000b40bd86c2e92bac5d7599d.jpg)
![C#如何绘制光谱图C#如何实现光谱图,如图!即如何控制RGB的权值生成渐变色](/uploads/image/z/16457718-30-8.jpg?t=C%23%E5%A6%82%E4%BD%95%E7%BB%98%E5%88%B6%E5%85%89%E8%B0%B1%E5%9B%BEC%23%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%85%89%E8%B0%B1%E5%9B%BE%2C%E5%A6%82%E5%9B%BE%21%E5%8D%B3%E5%A6%82%E4%BD%95%E6%8E%A7%E5%88%B6RGB%E7%9A%84%E6%9D%83%E5%80%BC%E7%94%9F%E6%88%90%E6%B8%90%E5%8F%98%E8%89%B2)
使用线性渐变画刷
下面的程序简单演示了四种颜色的渐变,分别是红、绿、蓝、黄,分布位置是均匀的:
private void button1_Click(object sender,EventArgs e)
{
Graphics gp = this.CreateGraphics();
Rectangle rect=new Rectangle(30,40,400,200);
LinearGradientBrush lb = new LinearGradientBrush(rect,Color.Red,Color.Green,LinearGradientMode.Horizontal);
ColorBlend cb = new ColorBlend(4);
Color[] colorArray=new Color[]{Color.Red,Color.Green,Color.Blue,Color.Yellow};
float[] positionArray=new float[]{0f,0.33f,0.67f,1f};
cb.Colors=colorArray;
cb.Positions=positionArray;
lb.InterpolationColors=cb;
gp.FillRectangle(lb,rect);
gp.Dispose();
}
再问: 那如何实现圆形的渐变呢,即圆心到圆周的渐变
再答: 那你就用PathGradientBrush画刷,自己查MSDN
下面的程序简单演示了四种颜色的渐变,分别是红、绿、蓝、黄,分布位置是均匀的:
private void button1_Click(object sender,EventArgs e)
{
Graphics gp = this.CreateGraphics();
Rectangle rect=new Rectangle(30,40,400,200);
LinearGradientBrush lb = new LinearGradientBrush(rect,Color.Red,Color.Green,LinearGradientMode.Horizontal);
ColorBlend cb = new ColorBlend(4);
Color[] colorArray=new Color[]{Color.Red,Color.Green,Color.Blue,Color.Yellow};
float[] positionArray=new float[]{0f,0.33f,0.67f,1f};
cb.Colors=colorArray;
cb.Positions=positionArray;
lb.InterpolationColors=cb;
gp.FillRectangle(lb,rect);
gp.Dispose();
}
再问: 那如何实现圆形的渐变呢,即圆心到圆周的渐变
再答: 那你就用PathGradientBrush画刷,自己查MSDN