MATLAB 哪位大佬帮我试试这个程序

2025-04-15 14:08:44
推荐回答(1个)
回答1:

帮你修改了一下,可以运行了

function daba
%靶的制作和打靶得分
n=10; %环的个数
cc=jet(n);
th=(0:360)*pi/180; %角度向量
figure %创建图形窗口
axis equal %使坐标间隔相等
hold on %保持图像cc='gcmyrbgcmy'; %颜色字符(1)
for i=1:n %按环数循环(2)
    x=(n+1-i)*cos(th); %横坐标
    y=(n+1-i)*sin(th); %纵坐标
    fill(x,y,cc(i,:)) %填色(3)
end %结束循环
s=0; %总分清零
ht1=text(-n,n-1,'','FontSize',16); %取文本句柄(4)
ht2=text(-n,-n+1,'','FontSize',16); %取文本句柄(4)
for i=1:n %按次数循环
    [x,y]=ginput(1); %获取坐标(5)
    plot(x,y,'k.','MarkerSize',20) %画点
    set(ht1,'String',['次数:',num2str(i)])%设置次数字符串(6)
    r=sqrt(x^2+y^2); %求射击点靶心距离
    m=n-floor(r); %计分(7)
    if m>0 %如果分数大于零(8)
        text(x,y,num2str(m),'FontSize',16)%显示分数(9)
        s=s+m; %累加分数
        set(ht2,'String',['总分:',num2str(s)])%设置总分字符串(10)
    end %结束条件
    % %[y,fs]=wavread('f:\1.wav');
    % %wavplay(y,fs)
end %结束循环
if s<85
    %[y,fs]=wavread('f:\2.wav');
    %wavplay(y,fs)
    text(5,10,'[太菜了,继续锻炼吧!]','FontSize',16)
end
if s>=85
    %[y,fs]=wavread('f:\3.wav');
    %wavplay(y,fs)
    text(5,10,'哇,好强啊!','FontSize',16)
end