function curseur_aire()global lockslider valueDisplay minDisplay maxDisplay line aedit bedit fcedit;globalff fig;globalsliderMin sliderMax sliderSteps;tryclose(fig)
endtrydelete(ff);
end
figWidth=600; //图像宽度
figHeight=600; //图像高度
fig=figure("Position",[10,10,figWidth,figHeight]);set(fig,"figure_name","面积计算求积分近似值");
fig.auto_resize= "off";
ff=scf(fig);
ff.background= -2;
axes=gca();
axes.box= "on";
axes.visible= "on";
axes.axes_bounds= [-0.05 -0.05 1.1 0.8];
axes.margins= [0.1 0.1 0.1 0.1];//框
frX=80; //框的横坐标
frWidth=300; //框的宽度
uicontrol(fig,"Style","frame",.."Position",[frX,75,frWidth,100],.."BackgroundColor",[0.9,0.9,0.9]);//函数
fctWidth=100;
uicontrol(fig,"Style","text",.."Position" ,[frX+20,150,fctWidth,20],.."BackgroundColor",[0.9,0.9,0.9],.."Horizontalalignment","center",.."String","输入函数:","FontSize",14,"FontWeight","bold");
fcWidth=150;
fcedit=uicontrol(fig,"Style","edit",.."Position",[frX+110,150,fcWidth,20],.."String","x^2","FontSize",14,"FontWeight","bold");//端点 a
atWidth=10; //端点 a 标签宽度
uicontrol(fig,"Style","text",.."Position" ,[(figWidth-atWidth)/2-190,120,atWidth,20],.."BackgroundColor",[0.9,0.9,0.9],.."Horizontalalignment","center",.."String","a :","FontSize",14,"FontWeight","bold");
aWidth=40; //端点 a 文本框宽度
aedit=uicontrol(fig,"Style","edit",.."Position",[(figWidth-aWidth)/2-150,120,aWidth,20],.."String","0","FontSize",14,"FontWeight","bold");//端点 b
btWidth=10; //端点 b 标签宽度
uicontrol(fig,"Style","text",.."Position" ,[(figWidth-btWidth)/2-90,120,btWidth,20],.."BackgroundColor",[0.9,0.9,0.9],.."Horizontalalignment","center",.."String","b :","FontSize",14,"FontWeight","bold");
bWidth=40; //端点 b 标签宽度
bedit=uicontrol(fig,"Style","edit",.."Position",[(figWidth-bWidth)/2-40,120,bWidth,20],.."String","3","FontSize",14,"FontWeight","bold");//按钮 ok
npokWidth=40;
uicontrol(fig,"Style","pushbutton",.."Position",[(figWidth-npokWidth)/2-80,90,npokWidth,20],.."String","Ok","FontSize",14,"FontWeight","bold",.."Callback","newdata_aire");
sliderMin=1; //滑条最小值
sliderMax=600; //滑条最大值
sliderX=50; //滑条框的横坐标
sliderY=50; //滑条框的纵坐标
sliderWidth=500; //滑条框的长度
sliderHeight=20; //滑条框的高度
sliderSteps=sliderMax-sliderMin; //滑条移动的步数//sliderSteps=100;//滑条移动的步数//建立滑条
slider=uicontrol(fig,"Style","slider",.."Position",[sliderX,sliderY,sliderWidth,sliderHeight],.."Min",0,"Max",sliderSteps,.."callback","update_aire");//显示端点最小值
lowerBoundPos =[sliderX-30,sliderY-10,20,sliderHeight];
uicontrol(fig,"Style","text",.."Horizontalalignment","right",.."Position",lowerBoundPos,.."BackgroundColor", [1 1 1],.."String",string(sliderMin),"FontSize",14,"FontWeight","bold");//显示端点最大值
upperBoundPos=[sliderX+sliderWidth+20,sliderY-10,30,sliderHeight];
uicontrol(fig,"style","text",.."Horizontalalignment","left",.."Position",upperBoundPos,.."BackgroundColor", [1 1 1],.."String",string(sliderMax),"FontSize",14,"FontWeight","bold");//显示当前值
valueDisplayPos=[sliderX+sliderWidth/2-50,sliderY-30,150,20] ;
valueDisplay=uicontrol(fig,"style","text","Horizontalalignment","left",.."BackgroundColor", [1 1 1],.."Position",valueDisplayPos,"FontSize",14,"FontWeight","bold");//显示值
titlePos=[frX+frWidth+20,150,200,20];
maxDisplay=uicontrol(fig,"style","text","Horizontalalignment","left",.."BackgroundColor", [1 1 1],.."Position",titlePos,"FontSize",14,"FontWeight","bold");
titlePos=[frX+frWidth+20,120,200,20];
minDisplay=uicontrol(fig,"style","text","Horizontalalignment","left",.."BackgroundColor", [1 1 1],.."Position",titlePos,"FontSize",14,"FontWeight","bold");lock=%t;
endfunction
这段代码定义了一个Scilab函数`curseur_aire()`,用于创建一个图形界面,用户可以输入函数、定义积分区间,并通过滑动条改变积分的近似值。程序包含一个文本框用于输入函数表达式,两个文本框分别输入积分的下限和上限,以及一个滑动条来调整积分的步长。界面还显示了积分的最小值和最大值。
528

被折叠的 条评论
为什么被折叠?



