话不多说,直接上干货

hfig=figure('visible','off');
set(hfig,'NumberTitle','off');
set(hfig,'name','My Clock');
set(hfig,'MenuBar','none');
set(hfig,'color',[0.5 0.7 0.3]);
set(hfig,'visible','on');
A=linspace(0,6.3,1000);
x1=8*cos(A);
y1=8*sin(A);
x2=7*cos(A);
y2=7*sin(A);
plot(x1,y1,'b','linewidth',1.4)
hold on
plot(x2,y2,'b','linewidth',3.5)
fill(0.4*cos(A),0.4*sin(A),'r');
axis off
axis([-10 10 -10 10])
axis equal
set(gca,'position',[0.13 0.05 0.775 0.815])
title(date,'fontsize',18)
for k=1:12;
xk=9*cos(-2*pi/12*k+pi/2);
yk=9*sin(-2*pi/12*k+pi/2);
plot([xk/9*8 xk/9*7],[yk/9*8 yk/9*7],'color',[0.3 0.8 0.9])
h=text(xk,yk,num2str(k),'fontsize',16,'color',...
[0.9 0.3 0.8],'HorizontalAlignment','center');
end
% 计算时针位置
ti=clock;
th=-(ti(4)+ti(5)/60+ti(6)/3600)/12*2*pi+pi/2;
xh3=4.0*cos(th);
yh3=4.0*sin(th);
xh2=xh3/2+0.5*cos(th-pi/2);
yh2=yh3/2+0.5*sin(th-pi/2);
xh4=xh3/2-0.5*cos(th-pi/2);
yh4=yh3/2-0.5*sin(th-pi/2);
hh=fill([0 xh2 xh3 xh4 0],[0 yh2 yh3 yh4 0],[0.6 0.5 0.3]);
% 计算分针位置
tm=-(ti(5)+ti(6)/60)/60*2*pi+pi/2;
xm3=6.0*cos(tm);
ym3=6.0*sin(tm);
xm2=xm3/2+0.5*cos(tm-pi/2);
ym2=ym3/2+0.5*sin(tm-pi/2);
xm4=xm3/2-0.5*cos(tm-pi/2);
ym4=ym3/2-0.5*sin(tm-pi/2);
hm=fill([0 xm2 xm3 xm4 0],[0 ym2 ym3 ym4 0],[0.6 0.5 0.3]);
% 计算秒针位置
ts=-(ti(6))/60*2*pi+pi/2;
hs=plot([0 7*cos(ts)],[0 7*sin(ts)],...
'color',[0.6 0.5 0.3],'linewidth',3);
set(gcf,'doublebuffer','on');
k=1;
while k<6;
ti=clock;
% 计算时针位置
th=-(ti(4)+ti(5)/60+ti(6)/3600)/12*2*pi+pi/2;
xh3=4.0*cos(th);
yh3=4.0*sin(th);
xh2=xh3/2+0.5*cos(th-pi/2);
yh2=yh3/2+0.5*sin(th-pi/2);
xh4=xh3/2-0.5*cos(th-pi/2);
yh4=yh3/2-0.5*sin(th-pi/2);
set(hh,'XData',[0 xh2 xh3 xh4 0],'YData',[0 yh2 yh3 yh4 0])
% 计算分针位置
tm=-(ti(5)+ti(6)/60)/60*2*pi+pi/2;
xm3=6.0*cos(tm);
ym3=6.0*sin(tm);
xm2=xm3/2+0.5*cos(tm-pi/2);
ym2=ym3/2+0.5*sin(tm-pi/2);
xm4=xm3/2-0.5*cos(tm-pi/2);
ym4=ym3/2-0.5*sin(tm-pi/2);
set(hm,'XData',[0 xm2 xm3 xm4 0],'YData',[0 ym2 ym3 ym4 0])
% 计算秒针位置
ts=-(ti(6))/60*2*pi+pi/2;
set(hs,'XData',[0 7*cos(ts)],'YData',[0 7*sin(ts)])
drawnow;
pause(0.09)
end
%% 时钟2:(第二个程序)
clf;shg;
h=figure('menubar','none',...
'color','white',...
'position',[200 200 320 360],...
'name','CLOCK');
e1=uicontrol('parent',h,... %定义一个edit控件,用于存储日期
'style','edit',... %该控件的类型为edit,可以编辑其内容
'fontsize',12,... %字体大小为12
'position',[110 20 120 30]); %位置,距离左边110,距离底边20,宽度为120,高度为30
b1=uicontrol('parent',h,... %定义一个text控件,显示刻度“12”
'style','text',...
'string','12',...
'fontsize',12,...
'position',[156 275 20 20]);
b2=uicontrol('parent',h,... %定义一个text控件,显示刻度“9”
'style','text',...
'string','9',...
'fontsize',12,...
'position',[60 175 20 20]);
b3=uicontrol('parent',h,... %定义一个text控件,显示刻度“6”
'style','text',...
'string','6',...
'fontsize',12,...
'position',[156 75 20 20]);
b4=uicontrol('parent',h,... %定义一个text控件,显示刻度“3”
'style','text',...
'string','3',...
'fontsize',12,...
'position',[260 175 20 20]);
s1=[0:pi/1000:2*pi];
hl=plot(cos(s1),sin(s1),'b-'); %绘制表盘的外圆
time=datestr(now); %得到当前时间
set(e1,'string',time(1:11)); %当前时间的1:11位是日期,把日期值给el
sita1=pi/2-str2num(time(19:20))*pi/30; %秒针转过的角度
sita2=pi/2-str2num(time(16:17))*pi/30+sita1/60; %分针转过的角度
sita3=pi/2-str2num(time(13:14))*pi/6+sita2/12; %时针转过的角度
w1=-pi/30; %设置秒针每秒转过的角度,分针走一个半圆需要30s
w2=-pi/1800; %设置分针每秒转过的角度
w3=-pi/108000; %设置时针每秒转过的角度
pausetime=1;
axis off;axis equal
hold on
plot(0,0,'or');
%设置刻度
for n=pi*2:-pi/30:pi/30 %绘制表盘,绘制分钟的刻度
a1=0.95*cos(n):0.05*cos(n)/2:cos(n);b1=0.95*sin(n):0.05*sin(n)/2:sin(n);
plot(a1,b1,'r-');
end
for n=pi*2:-pi/6:pi/30 %绘制表盘,绘制小时的刻度
a1=0.9*cos(n):0.1*cos(n)/2:cos(n);b1=0.9*sin(n):0.1*sin(n)/2:sin(n);
plot(a1,b1,'r-');
end
%时钟指针
while 1
x1=0:0.75*cos(sita1)/2:0.75*cos(sita1);y1=0:0.75*sin(sita1)/2:0.75*sin(sita1); %根据秒针的位置绘制分针
x2=0:0.6*cos(sita2)/2:0.6*cos(sita2);y2=0:0.6*sin(sita2)/2:0.6*sin(sita2); %根据分针的位置绘制分针
x3=0:0.45*cos(sita3)/2:0.45*cos(sita3);y3=0:0.45*sin(sita3)/2:0.45*sin(sita3); %根据时针的位置绘制分针
hp1=plot(x1,y1,'b-');
hp2=plot(x2,y2,'b-','linewidth',2);
hp3=plot(x3,y3,'g-','linewidth',2);
sita1=sita1+w1*pausetime; %计算一秒以后秒针的角度位置
sita2=sita2+w2*pausetime; %计算一秒以后分针的角度位置
sita3=sita3+w3*pausetime; %计算一秒以后时针的角度位置
pause(pausetime);
delete(hp1);
delete(hp2);
delete(hp3);
end
hold off

用matlab绘制一个时钟相关推荐

  1. android canvas 画按钮,Android 用Canvas轻松绘制一个时钟

    接下来这篇文章主要是结束如何轻松自定义一个View并使用Canvas绘制一个时钟的案例,话不多说先上图瞅瞅,一共实现了两种效果,一种是秒动(秒针一秒走一针).另一种是连动式的,秒针不会停会一直走动,话 ...

  2. python神奇时钟项目_怎么在Python项目中利用Pygame绘制一个时钟

    怎么在Python项目中利用Pygame绘制一个时钟 发布时间:2020-11-30 14:24:30 来源:亿速云 阅读:54 作者:Leah 怎么在Python项目中利用Pygame绘制一个时钟? ...

  3. Canvas绘制一个时钟

    Canvas绘制一个时钟 Canvas:一个可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素.它可以用来制作照片集或者制作简单(也不是那么简单)的动画,甚至可以进行实时视频处 ...

  4. 【手把手制作三阶魔方模拟器】用MATLAB绘制一个一阶魔方

    [手把手制作三阶魔方模拟器]用MATLAB绘制一个一阶魔方 在三维空间绘制一个正方形 在三维空间绘制一个正六面体 其他 by 今天不飞了 有一个酷爱魔方的朋友,托我给他定制一个专门用于"训练 ...

  5. MATLAB绘制罗盘时钟

    一期趣味编程哈,如何使用MATLAB绘制罗盘时钟: 绘制效果 完整代码 function compassClock % @author : slandarer CCList='零一二三四五六七八九十' ...

  6. Android 自定义控件-Canvas和Paint绘图详解-手把手带你绘制一个时钟.

    Android - Paint基础 在自定义控件时,经常需要使用canvas.paint等,在canvas类中,绘画基本都是靠drawXXX()方法来完成的,在这些方法中,很多时候都需要用到paint ...

  7. 万圣节快到了,一起用MATLAB绘制一个可爱的南瓜灯叭

    效果及原理 效果如下: 调一下数据还能改成三角眼: 原理 南瓜主体函数从知友 [九章算法] 的一张图而来,大体是瓜身瓜柄分段函数,然后绕着z轴旋转一周得到曲面,我对数值做了微调,原图及原始数据: 这里 ...

  8. 优秀课程案例:使用Scratch的画笔积木模块绘制一个时钟,教程详解带并且素材

    今天准备重新排版一下,详细的讲解每个步骤和需要注意的细节,并且分享出来详细的源码和素材. 1:添加时钟背景,这个素材大家可以用我们的,也可以自己网上寻找自己觉得好看的时钟刻度背景,比如我们可以这样使用 ...

  9. matlab 绘制一个可爱的胖娃娃

    1 程序说明 这个程序就是用一系列椭圆,圆角矩形及心形拼在起,以下说明一下各部分怎么生成: 椭圆形: 椭圆形是用的如下椭圆数据生成函数生成数据点,之后再用fill函数绘制而成,其中Mu为椭圆中心点,S ...

最新文章

  1. 上接稳扎稳打Silverlight(20) - 2.0通信之WebClient, 以字符串的形式上传/下载数据
  2. 伯克利论断:Serverless 才是云时代的主宰
  3. [Unity动画]04.Avatar Mask
  4. React + TypeScript 默认 Props 的处理
  5. superagent返回结果乱码
  6. Matplotlib - 散点图 scatter() 所有用法详解
  7. 【debug】写应用程序时遇到的桌面图标、运行图标、背景图片问题
  8. Spring入门系列之Spring概述
  9. JavaScript学习(三十六)—移动的小球
  10. c/c++教程 - 2.4.2.1~2 对象的初始化和清理,构造函数和析构函数,构造函数的分类和调用(有参构造,无参构造,普通构造,拷贝构造,括号法,显示法,隐式转换法,匿名对象)
  11. 设计模式之GOF23适配器模式
  12. RTI_DDS自定义插件开发 1
  13. 如何对计算机进行硬盘的区分,电脑如何区分和转换磁盘gpt和mbr
  14. 顶峰Android手机视频转换器,顶峰FLV视频转换器
  15. 大数据总结【第四章:Hbase】
  16. 海信a5,掌阅f1手机水墨屏护眼日常使用经验
  17. 仿网易云音乐播放界面
  18. 2026. 低质量的问题
  19. 2022《人工智能》_ch06
  20. 受疫情影响,超七成美国科技公司暂停招聘或裁员

热门文章

  1. 【Python刷题】_8
  2. Qt实现Matlab的等差函数linSpace
  3. 浅析人类最贵、最大的机器学习模型GPT-3及背后隐含的商业逻辑
  4. 【LeetCode从零单排】No133. clon graph (BFS广度优先搜索)
  5. Hive SQL基础
  6. 重磅!GitHub发布开源负载均衡组件GLB
  7. Lambda架构与推荐在电商网站实践
  8. Domain Driven Design and Development In Practice--转载
  9. java 四种实现延迟加载的方法
  10. redis session共享中的序列化问题