MATLAB画哆啦A梦

MATLAB画哆啦A梦

在这里插入图片描述

%===========================================%
%--------------MATLAB绘制哆啦A梦-------------%
%===========================================%

clear all; %清除所有变量
close all; %清图
clc ;      %清屏

%% 蓝色的头(直径为300,圆心坐标设置为(150,150))
d=[0,0.74902,1];%颜色
r=150;%半径
a=150;%圆心横坐标
b=150;%圆心纵坐标
para=[a-r,b-r,2*r,2*r];
rectangle('Position',para,'Curvature',[1 1],'edgecolor','k','facecolor',d,'linewidth',2);
%在指定位置绘制矩形,其中x,y为矩形左下角坐标,w,h分别为矩形的长和宽

%% 白色的脸(直径为250,圆心坐标为(150,125))
hold on
rectangle('Position',[25,0,250,250],'Curvature',[1 1],'edgecolor','k','facecolor','w','linewidth',2);

%% 眼睛(长轴为65,短轴为50的椭圆1)
%左边(圆心坐标为(125,252.5))
hold on
Num=1000;
cicle=zeros(Num,2);
a1=25;b1=32.5;%长短半轴
for i=1:Num
	theta=-pi+i/Num*2*pi;
	dOP=a1*b1/sqrt(a1^2*sin(theta)^2+b1^2*cos(theta)^2);
	cicle(i,:)= dOP*[cos(theta) sin(theta)];
end
plot(cicle(:,1)+125,cicle(:,2)+252.5,'k','linewidth',2);
fill(cicle(:,1)+125,cicle(:,2)+252.5,'w');%填充颜色
%右边(圆心坐标为(175,252.5))
cicle=zeros(Num,2);
for i=1:Num
	theta=-pi+i/Num*2*pi;
	dOP=a1*b1/sqrt(a1^2*sin(theta)^2+b1^2*cos(theta)^2);
	cicle(i,:)= dOP*[cos(theta) sin(theta)];
end
plot(cicle(:,1)+175,cicle(:,2)+252.5,'k','linewidth',2);
fill(cicle(:,1)+175,cicle(:,2)+252.5,'w');

%% 眼珠子(长轴为22,短轴为15的椭圆2)
%左边(圆心坐标为(137.5,252))
hold on
Num=1000;
cicle=zeros(Num,2);
a2=7.5;b2=11;%长短半轴
for i=1:Num
	theta=-pi+i/Num*2*pi;
	dOP=a2*b2/sqrt(a2^2*sin(theta)^2+b2^2*cos(theta)^2);
	cicle(i,:)= dOP*[cos(theta) sin(theta)];
end
plot(cicle(:,1)+137.5,cicle(:,2)+252,'k','linewidth',2);
fill(cicle(:,1)+137.5,cicle(:,2)+252,'k');
%右边(圆心坐标为(162.5,252))
cicle=zeros(Num,2);
for i=1:Num
	theta=-pi+i/Num*2*pi;
	dOP=a2*b2/sqrt(a2^2*sin(theta)^2+b2^2*cos(theta)^2);
	cicle(i,:)= dOP*[cos(theta) sin(theta)];
end
plot(cicle(:,1)+162.5,cicle(:,2)+252,'k','linewidth',2);
fill(cicle(:,1)+162.5,cicle(:,2)+252,'k');

%% 眼珠子里的白光(长轴为10,短轴为5的椭圆3)
%左边(圆心坐标为(137.5,250))
hold on
Num=1000;
cicle=zeros(Num,2);
a3=2.5;b3=5;%长短半轴
for i=1:Num
	theta=-pi+i/Num*2*pi;
	dOP=a3*b3/sqrt(a3^2*sin(theta)^2+b3^2*cos(theta)^2);
	cicle(i,:)= dOP*[cos(theta) sin(theta)];
end
plot(cicle(:,1)+137.5,cicle(:,2)+250,'w');
fill(cicle(:,1)+137.5,cicle(:,2)+250,'w');
%右边(圆心坐标为(162.5,250))
cicle=zeros(Num,2);
for i=1:Num
	theta=-pi+i/Num*2*pi;
	dOP=a3*b3/sqrt(a3^2*sin(theta)^2+b3^2*cos(theta)^2);
	cicle(i,:)= dOP*[cos(theta) sin(theta)];
end
plot(cicle(:,1)+162.5,cicle(:,2)+250,'w');
fill(cicle(:,1)+162.5,cicle(:,2)+250,'w');

%% 红鼻子(直径为20,圆心坐标为(150,220))
hold on
rectangle('Position',[140,210,20,20],'Curvature',[1 1],'edgecolor','k','facecolor','r','linewidth',2);
hold on
plot([150 150],[100 210],'k','linewidth',1.8);%与y轴平行的直线

%% 嘴巴
r = 120;%半径
a4= 150;%圆心横坐标
b4= 220;%圆心纵坐标
theta=4*pi/3:0.1:5*pi/3;%240度到300度的圆弧
x1=a4+r*cos(theta);
y1=b4+r*sin(theta);
plot(x1,y1,'k','linewidth',2);

%% 胡须
%左边
plot([60 130],[200 180],'k','linewidth',1.8);
plot([50 130],[160 160],'k','linewidth',1.8);%与x轴平行的直线
plot([60 130],[120 140],'k','linewidth',1.8);
%右边
plot([170 240],[180 200],'k','linewidth',1.8);
plot([170 250],[160 160],'k','linewidth',1.8);%与x轴平行的直线
plot([170 240],[140 120],'k','linewidth',1.8);

%% 蓝色身体(长为220,宽为200的矩形)
rectangle('Position',[40 -150 220 200],'edgecolor','k','facecolor',d,'linewidth',1.8) 
%大肚囊(直径为170,圆心坐标为(150,-25))
rectangle('Position',[65,-110,170,170],'Curvature',[1 1],'edgecolor','w','facecolor','w','linewidth',2);
%百宝袋(直径为120,圆心坐标为(150,-25)的半圆)
plot([90 210],[-25 -25],'k','linewidth',1.5);%与x轴平行的直线
r = 60;%半径
a5 = 150;%圆心横坐标
b5 = -25;%圆心纵坐标
theta=pi:0.01:2*pi;%180度到360度的圆弧
x2=a5+r*cos(theta);
y2=b5+r*sin(theta);
plot(x2,y2,'k','linewidth',1.5);

%% 胳膊(多边形)
%左边
xL=[40 0 20 40];
yL=[40 -10 -30 -20];
plot(xL,yL,'k','linewidth',2);
fill(xL,yL,d);
%右边
xR=[260 300 280 260];
yR=[40 -10 -30 -20];
plot(xR,yR,'k','linewidth',2);
fill(xR,yR,d);
%左手掌(直径为40,圆心坐标为(0,-30))
rectangle('Position',[-20,-50,40,40],'Curvature',[1 1],'edgecolor','k','facecolor','w','linewidth',2);
%右手掌(直径为40,圆心坐标为(300,-30))
rectangle('Position',[280,-50,40,40],'Curvature',[1 1],'edgecolor','k','facecolor','w','linewidth',2);

%% 裤裆(直径为40,圆心坐标为(150,-150)的半圆)
rectangle('Position',[130,-170,40,40],'Curvature',[1 1],'edgecolor','w','facecolor','w','linewidth',2);
r = 20;%半径
a6 = 150;%圆心横坐标
b6 = -150;%圆心纵坐标
theta=0:0.01:pi;%180度到360度的圆弧
x3=a6+r*cos(theta);
y3=b6+r*sin(theta);
plot(x3,y3,'k','linewidth',2);

%% 小脚丫(长轴为120,短轴为40的椭圆7)
%左边(圆心坐标为(80,-150))
hold on
Num=1000;
cicle=zeros(Num,2);
a7=60;b7=20;%长短半轴
for i=1:Num
	theta=-pi+i/Num*2*pi;
	dOP=a7*b7/sqrt(a7^2*sin(theta)^2+b7^2*cos(theta)^2);
	cicle(i,:)= dOP*[cos(theta) sin(theta)];
end
plot(cicle(:,1)+80,cicle(:,2)-150,'k','linewidth',2);
fill(cicle(:,1)+80,cicle(:,2)-150,'w');
%右边(圆心坐标为(220,-150))
cicle=zeros(Num,2);
for i=1:Num
	theta=-pi+i/Num*2*pi;
	dOP=a7*b7/sqrt(a7^2*sin(theta)^2+b7^2*cos(theta)^2);
	cicle(i,:)= dOP*[cos(theta) sin(theta)];
end
plot(cicle(:,1)+220,cicle(:,2)-150,'k','linewidth',2);
fill(cicle(:,1)+220,cicle(:,2)-150,'w');

%% 项圈(长为234,宽为15的矩形)
rectangle('Position',[33 45 234 15],'Curvature',[0.3 0.3],'edgecolor','r','facecolor','r');

%% 铃铛(直径为30,圆心坐标为(150,37);直径为8,圆心坐标为(150,31))
rectangle('Position',[135,22,30,30],'Curvature',[1 1],'edgecolor','k','facecolor','y','linewidth',2);
plot([136.25 163.66],[43 43],'k','linewidth',1.5);%与x轴平行的直线
plot([135.13 164.86],[39 39],'k','linewidth',1.5);%与x轴平行的直线
rectangle('Position',[146,27,8,8],'Curvature',[1 1],'edgecolor','k','facecolor','y','linewidth',2);
plot([150 150],[22 27],'k','linewidth',2);%与y轴平行的直线
axis equal     %等比坐标轴
axis off       %去掉坐标轴
% title('哆啦A梦');
  • 19
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值