Code: Select all
Define .f
canvasx.u=0
canvasy.u=0
canvasw.u=600
canvash.u=400
sliderax.u=canvasx+canvasw
slideray.u=canvasy
slideraw.u=25
sliderah.u=canvash
sliderbx.u=canvasx
sliderby.u=canvasy+canvash
sliderbw.u=canvasw
sliderbh.u=25
slidercx.u=canvasx
slidercy.u=sliderby+25
slidercw.u=canvasw
sliderch.u=25
sliderex.u=canvasx
sliderey.u=slidercy+25
sliderew.u=canvasw
slidereh.u=25
If OpenWindow(0,0,0,canvasw+60,canvash+80,"Función de Gauss",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
CanvasGadget(10,canvasx,canvasy,canvasw,canvash)
StartDrawing(CanvasOutput(10)):Box(canvasx,canvasy,canvasw,canvash,0):StopDrawing()
TrackBarGadget(0,sliderax,slideray,slideraw,sliderah,0,5E3,#PB_TrackBar_Vertical); <- a
TrackBarGadget(1,sliderbx,sliderby,sliderbw,sliderbh,0,5E3); <- b
TrackBarGadget(2,slidercx,slidercy,slidercw,sliderch,0,5E3); <- c
TrackBarGadget(3,sliderex,sliderey,sliderew,slidereh,0,5E3); <- e
SetGadgetState(0,2500)
SetGadgetState(1,2500)
SetGadgetState(2,500)
SetGadgetState(3,500)
a=GetGadgetState(0)*canvash/5E3
b=GetGadgetState(1)*canvasw/5E3
c=GetGadgetState(2)*canvasw/5E3
e=GetGadgetState(3)*canvasw/1E5
TextGadget(20,sliderax+slideraw,slideray,slideraw*2,slideraw,StrF(a,3))
TextGadget(21,sliderbx+sliderbw,sliderby,sliderbh*2,sliderbh,StrF(b,3))
TextGadget(22,slidercx+slidercw,slidercy,sliderch*2,sliderch,StrF(c,3))
TextGadget(23,sliderex+sliderew,sliderey,slidereh*2,slidereh,StrF(e,3))
Repeat
Event.i=WaitWindowEvent()
Select EventGadget()
Case 0;:EventType()
a=GetGadgetState(0)*canvash/5E3
SetGadgetText(20,StrF(a,3))
Case 1;:EventType()
b=GetGadgetState(1)*canvasw/5E3
SetGadgetText(21,StrF(b,3))
Case 2;:EventType()
c=GetGadgetState(2)*canvasw/5E3
SetGadgetText(22,StrF(c,3))
Case 3;:EventType()
e=GetGadgetState(3)*canvasw/1E5
SetGadgetText(23,StrF(e,3))
EndSelect
StartDrawing(CanvasOutput(10))
Box(canvasx,canvasy,canvasw,canvash,0)
For x.u=canvasx To canvasw-1
xp.u=x.u:yp.u=y.u
y.u=canvash-a*Pow(e,-Pow(x-b,2)/2/c/c)
LineXY(xp,yp,x,y,$AAEE90)
Next
StopDrawing()
Until Event=#PB_Event_CloseWindow
EndIf