momentsAPI = function (...){ require(tcltk); source('moments.R') sc <-10; ave <- tclVar(0); sig2 <- tclVar(1*sc); skew <- tclVar(0); kurt <- tclVar(3*sc); base <- tktoplevel(); tkwm.title(base,'Pearson type IV Distribution'); tt <- tkframe(base, borderwidth=2) sliderFrame <- tkframe(tt, borderwidth=2, relief='groove'); aveFrame <- tkframe(sliderFrame, borderwidth=2); aveLabel <- tklabel(aveFrame, text="Expectation: ", width=10); aveValueLabel <- tklabel(aveFrame, text="", width=6); sig2Frame <- tkframe(sliderFrame, borderwidth=2); sig2Label <- tklabel(sig2Frame, text="Variance: ", width=10); sig2ValueLabel <- tklabel(sig2Frame, text="", width=6); skewFrame <- tkframe(sliderFrame, borderwidth=2); skewLabel <- tklabel(skewFrame, text="Skewness: ", width=10); skewValueLabel <- tklabel(skewFrame, text="", width=6); kurtFrame <- tkframe(sliderFrame, borderwidth=2); kurtLabel <- tklabel(kurtFrame, text="Kurtosis : ", width=10); kurtValueLabel <- tklabel(kurtFrame, text="", width=6); actionPerformed = function(...){ p <- findparams(as.double(tclvalue(ave))/sc, as.double(tclvalue(sig2))/sc, as.double(tclvalue(skew))/sc, as.double(tclvalue(kurt))/sc); plotpearson(p[1], p[2], p[3], p[4]); tkconfigure(aveValueLabel, text=as.character(as.double(tclvalue(ave))/sc)) tkconfigure(sig2ValueLabel, text=as.character(as.double(tclvalue(sig2))/sc)) tkconfigure(skewValueLabel, text=as.character(as.double(tclvalue(skew))/sc)) tkconfigure(kurtValueLabel, text=as.character(as.double(tclvalue(kurt))/sc)) } reset = function (...){ ave <- tclVar(0*sc); sig2 <- tclVar(1*sc); skew <- tclVar(0*sc); kurt <- tclVar(3*sc); } aveSlider <- tkscale(aveFrame, from=-3*sc, to=3*sc, length=600, showvalue=F, variable=ave, resolution=1, orient='horizontal', command=actionPerformed) tkpack(aveFrame, aveLabel, aveValueLabel, aveSlider, side='left'); sig2Slider <- tkscale(sig2Frame, from=0.01*sc, to=5*sc, length=600, showvalue=F, variable=sig2, resolution=1, orient='horizontal', command=actionPerformed) tkpack(sig2Frame, sig2Label, sig2ValueLabel, sig2Slider, side='left'); skewSlider <- tkscale(skewFrame, from=-10*sc, to=10*sc, length=600, showvalue=F, variable=skew, resolution=1, orient='horizontal', command=actionPerformed) tkpack(skewFrame, skewLabel, skewValueLabel, skewSlider, side='left'); kurtSlider <- tkscale(kurtFrame, from=0*sc, to=30*sc, length=600, showvalue=F, variable=kurt, resolution=1, orient='horizontal', command=actionPerformed) tkpack(kurtFrame, kurtLabel, kurtValueLabel, kurtSlider, side='left'); tkpack(sliderFrame, aveFrame, sig2Frame, skewFrame, kurtFrame, side='top') tkpack(tt, sliderFrame,side='top'); tkfocus(aveSlider) } momentsAPI();