function candle
%CANDLE Das ultimative 1.Advent m-File ;-)

x=-1:.1:12;
y=erf(x-2)-erf((x-6)./4);     %Silouette der Flamme
[a b c]=cylinder(y,50);       %Flamme
[d e f]=cylinder(.4);         %Kerze
[g h i]=cylinder([.4,0]);     %Boden & Deckel
top=surf(g,h,i/7);
hold on
i(:,:)=0;                     %spitzen deckel für boden abflachen
bottom=surf(g,h,i-1);
candle=surf(e,d,f-1);
flame=surf(b/10,a/10,c,'edgecolor','none','facecolor','interp');
set([top,bottom,candle],'edgecolor','none','facecolor',[1 0 0]);
colormap(hot)
l=light('Position',[0 0 0.3],'Style','local','color',[1 1 0]); %Licht isz in der flamme
axis equal off
set(gcf,'color','k')
view(3)
lighting phong
set(flame,'FaceLighting','none') %flamme nicht beleuchten
set(flame,'facealpha',.6)        %und transparent
xdat=get(flame,'xdata');         %daten der flamme auslesen
ydat=get(flame,'ydata');
zdat=get(flame,'zdata');
for j=1:100                      %und zufällig in allen 3 dim stecken/stauchen
    f=(rand(3,1)*0.2)-.1;
    set(l,'position',[0+f(1) 0+f(2) 0.3+f(3)]) %positon des lichtes mit verändern
    set(flame,'XData',xdat*(1+f(1)),'yData',ydat*(1+f(2)),'zData',zdat*(1+f(3)))
    pause(0.1)
end

return