Mathematica编程绘图画时钟

        我们都知道时钟上使用12小时模拟表盘,但殊不知24小时版本的模拟表盘至今仍在使用。在这个版本中,一天24小时都在一个表盘显示,秒钟和分钟都能显示出来。在24小时版本的时针每24小时走完一圈,在普通的12小时刻度盘上,时针每天走完两周。最早制作于中世纪的时钟,很有可能是24小时版本,而不是12小时版本。不过24小时版本也并非销声匿迹,至今在技术和专业设备等我们仍然可以看到一些欧洲古老钟表的早期设计,譬如德国、捷克、意大利等国家的天文钟。24小时刻度盘还用于技术和专业钟表,如飞行员手表和用作时间控制器的时钟。
        科普完毕后,下面用Mathematica演示显示一下时钟和手表上使用的24小时模拟表盘,如图一所示。程序使用Manipulate函数做成动画形式,模拟时钟真实走动。

附代码如下:

Manipulate[
Module[{hourHandUT,hourHand,minuteHand,secondHand},
hourHandUT={Blue,Thickness[.001],Arrow[{{0,-0.10},{0,.86}}]};
hourHand={Black,Thickness[.020],{Line[{{0,-0.10},{0,.60}}],Arrow[{{0,.60},{0,.73}}]}};minuteHand={Black,Thickness[.012],Line[{{0,-0.10},{0,.83}}]};secondHand={Red,Thickness[.005],EdgeForm[Black],Arrow[{{0,-0.10},{0,.93}}]};
Graphics[{
{Gray,Thickness[.02],Circle[]},
(*Thin ticks*){Gray,Thickness[.003],
Table[Line[{.95 {Cos[a],Sin[a]},.98{Cos[a],Sin[a]}}],
{a,0,2Pi,2Pi/6}]},
(*Thick ticks*){Gray,Thickness[.01],
Table[Line[{.94 {Cos[a],Sin[a]},.98{Cos[a],Sin[a]}}],{a,0,2Pi,2Pi/24}]},(*{*Numbers: <}*)
Style[Table[Text[Mod[i+hourAtTop,24],
.87 {Cos[-i Pi/12+ Pi/2],Sin[-i Pi/12+ Pi/2]}],{i,1,24}],”Label”, Bold, 14],
Rotate[hourHand,Dynamic[Refresh[-15 Mod[AbsoluteTime[]/3600 -( 12 + hourAtTop) , 60]\[Degree] , UpdateInterval ->10]], {0, 0}],
Rotate[hourHandUT,Dynamic[Refresh[-15 Mod[AbsoluteTime[TimeZone ->0]/3600 – (12 + hourAtTop), 60]\[Degree] , UpdateInterval ->10]], {0, 0}],
Rotate[minuteHand,Dynamic[Refresh[-6Mod[AbsoluteTime[]/60 , 60]\[Degree],UpdateInterval ->1]], {0, 0}],
Rotate[secondHand,Dynamic[Refresh[-6Mod[AbsoluteTime[], 60]\[Degree],UpdateInterval ->1/4]],{0, 0}]}]],
{{hourAtTop, 0, “hour at top”}, {0, 12}}]

作者: whaihuan

Matlab|Simulink|GUI|Mathematica|Maple|电力电子|代做代写|仿真编程

发表评论

电子邮件地址不会被公开。 必填项已用*标注