如何利用C#编程实现灯光衰减的效果,我需要的是像灯光一样,外发光要有...

发布网友 发布时间:2024-10-24 15:01

我来回答

4个回答

热心网友 时间:6分钟前

你可以使用PathGradientBrush来做图形的渐变。

代码如下:

using System.Drawing.Drawing2D;private void Form19_Paint(object sender, PaintEventArgs e)
{
GraphicsPath graphicsPath = new GraphicsPath();
graphicsPath.AddEllipse(new Rectangle(0, 0, 200, 200));
PathGradientBrush pathGradientBrush = new PathGradientBrush(graphicsPath);
pathGradientBrush.CenterColor = Color.FromArgb(255, 232, 3);
pathGradientBrush.CenterPoint = new PointF(100, 100);
pathGradientBrush.SurroundColors = new Color[] { Color.Transparent };
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
e.Graphics.FillEllipse(pathGradientBrush, new Rectangle(0, 0, 200, 200));
graphicsPath.Dispose();
pathGradientBrush.Dispose();
}

热心网友 时间:5分钟前

C#的WPF应该可以实现你说的效果!!

热心网友 时间:8分钟前

这个属于图片处理,有对应的处理方法和算法
对于我这个不懂的,我会用一幅黑色的图挡在前面,通过调节这幅黑色图片的透明度来控制用户对背后的亮光的看到程度,当然,这个是整幅图的一起遮挡或不同透明程度的遮挡
原理一样,想要有衰减,就不能统一设置一样的透明度,以光亮中心为圆心,不同的半径用不同的透明度,从小半径到大半径,透明度从大到小,当然这个涉及到一个执行效率的问题
当然也可以直接对原图处理好,在PS中处理好灯光衰减效果,前面的黑色遮挡层,设置透明度就可以了
当然也可以直接对原图中的像素进行调节达到效果,就不需要什么遮挡层了
当然,还是效率问题,自己研究,表示没怎么学过图片处理
我说的是自己绘图,先绘制原图,再覆盖绘制带有不同透明度的前景图片

热心网友 时间:9分钟前

发光强度,和电流有关,在电阻一定的情况下只有用代码控制电压了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com