1.问题
画你自己的手的形状,在MATLAB中输入
figure('position',get(0,'screensize'))
axes('position',[0 0 1 1])
[x,y]=ginput;
将你的手掌张开放在计算机屏幕上,然后使用计算机鼠标选取一系列点勾勒出手的轮廓,按回车键结束ginput过程,这样就获得了一系列你的手掌外形数据点(x,y)。也可以这样获得数据点(X,Y),先把手放在一张白纸上,并用笔画出它的轮廓线,然后将纸贴在计算机屏幕上,透过纸能看到平面上的鼠标,并通过ginput记录下轮廓上的点。将x和y坐标值看作是两个独立变量的函数,独立变量的取值为从1到记录的点的数目。利用MATLAB的插值函数进行插值,并画出你的手掌外形轮廓。
2.代码
% figure('position',get(0,'screensize'))
% axes('position',[0 0 1 1])
% [x,y]=ginput;
clc;clear;
data=xlsread('手.xls');
x=data(:,1);
y=data(:,2);
plot(x,y,'bo','LineWidth',2.5); hold on
plot(x,y,'--r','LineWidth',3.5); hold on
n=length(x);
x1=spline(1:n,x,1:0.1:n);
y1=spline(1:n,y,1:0.1:n);
plot(x1,y1,'k','LineWidth',2.5); hold on
legend({'手o','手','手插值'},'FontSize',15);
xlabel({'x'},'FontSize',18);ylabel({'y'},'FontSize',18);
title({'手'},'FontSize',18);
%设置边框宽度坐标轴美化
set(gca,'linewidth',1.5);
set(gca,'XGrid', 'off', 'YGrid', 'off', ...
'TickDir', 'in', 'TickLength', [.015 .015], ...
'XMinorTick', 'on', 'YMinorTick', 'on', ...
'XColor', [.1 .1 .1], 'YColor',[.1 .1 .1]);
3.绘图