一个觉得很难的问题:如何做一个手电筒的灯光效果出来。500分 ( 积分: 200 )

  • 主题发起人 主题发起人 maozhuxi
  • 开始时间 开始时间
M

maozhuxi

Unregistered / Unconfirmed
GUEST, unregistred user!
这里描述一下效果:
就象我们平时用的手电筒一样,用delphi做一个手电筒开关的效果
不是两个图片,一个红,一个黑两个图片互换那样的效果,是将手电筒开关过程
中手电筒灯光由弱到强,再由强到弱,最后到熄灭的这个过程。
而且,这个过程可以用时间控制,就是说可以分配一个时间如:
开灯到熄灯设置的过程为1秒,2秒,5秒,10秒等
一句话就是希望模拟真实的灯光。
就600分了,先给出200分,解决问题后再给300分,谢谢大家,希望帮顶。
 
这效果用delphi实现,不如用flash配合编程实现。
用传参数的方式,delphi和flash配合能出这效果。。

如果只想用delphi实现的话。需要你在控件上做定时器,然后处理颜色值随时间的变化
多次绘制可达到
 
用flash配合也可以
我也想学下,flash的参数怎么传递给delphi
 
Flash的话,可以用XMLSocket
 
用delphi是可以实现,只是有点难度。
 
//demo,带光晕,从红--》黑,原理实现,要想效果更好自己修改参数
//f(i,j)实现光晕效果
procedure TForm1.Button34Click(Sender: TObject);
var
i,j,k:integer;
clr:integer;
fk:real;
begin
button34.Enabled:=false;
for k:=1 to 255 do //参数自己设置,颜色变化k次
begin
fk:=k;
clr:=round(255.-fk);
for i:=0 to Image3.Width do
for j:=0 to Image3.Height do
begin
Image3.Canvas.Pixels[i,j]:=round(RGB(clr,0,0)*f(i,j));
end;
Application.ProcessMessages;
Sleep(5);
end;
button34.Enabled:=true;
end;
function TForm1.f( i:integer; j:integer):real;
var
centerx,centery:integer;
Maxdis,dis:real ;

begin
centerx:=round(Image3.Width/2);
centery:=round(Image3.Height/2);
Maxdis:=sqrt(sqr(centerx)+sqr(centery));
dis:=sqrt(sqr(i-centerx)+sqr(j-centery));
result:=(MaXdis-dis)/Maxdis;
end;
 
谢谢,anso
我试了下,效果还不理想,能不能再逼真些,就象玩暗黑游戏一样
刚进入的时候哪个发光的门一样,我希望的手电筒效果就是那样,希望你能帮忙。
 
to anso:
还有我看了下你的代码,还是不知道怎么修改才能控制由红到黑的显示时间,
你给的参数k好象不是控制显示时间,而是控制显示的颜色。
 
楼主问题描述的还是不清楚,用opengl实现,效果好。
可以用glscene控件,里面有个光源组件,类型有聚光灯,泛光灯,平面光源等。光色,强弱皆可自由调节。
下面是我用glscene控件开发的一个小游戏的光照效果。
http://hi.baidu.com/3030/album/item/16615bb500c596cf36d3caef.html
 
好,那我再把问题说清楚一些吧。
一个圆形区域
点一下鼠标,这个区域就闪光,闪光从暗到亮,再由亮到暗,闪光效果要真实
就象我们平时在晚上用的手电筒一样。
同时要求闪光时间可以控制。
 
就这个要求,那可以简单的方法解决:
1。找个手电
2。在黑屋中对不同的亮度拍照
3。用定时器动态加载不同的图片。
 
to ufo:
glscene控件那里有下载的?我刚才找了好多地址都不能连接上。
你有有效的下载地址吗?
 
http://glscene.org
 
我觉得没必要用OpenGL吧,我记得FastDib的例子里就有这样的效果,lz可以到delphibox.com去找找fastDib来看看,
 
没有办法吗?...................
 
是一个从暗到亮的过程吗?
像游戏中开场那种淡入淡出?
还是从中间往周围亮?
能否说明白一点?
 
其实效果很简单,晚上在黑暗中不断的开关手电筒,效果就是那样的。
其实楼上anso的有点接近,但是看起来不真实。
 
那效果我试了,太慢了,而且看不到图。
 
是啊,你有别的办法吗?
我的qq:308035395
 
有个外国人的控件,有很多图片特效,很平滑的,你去找找,说不定有那个光晕的。
 
后退
顶部