本文目录一览:
n96和n95的差别
N95比较实在,N96相比N95少了个3D的运算单元,所以3D效果得用CPU运算,既费电又费时间。
少了个独立的解码芯片,也就是说,你用自带的播放器听音乐也是用CPU解码,费电,而且容易出现破音,最重要的是音效不好。
N96很多测试数据都不如N95,而且还贵。
当然,如果你对上面讲的都不在意的话,N96还是有优点的。
N96运存比N95大,N96开机运存50左右吧,N96开机运存不超过30。
一个是N96的USB接口是USB2.0,比N95(USB1.1)快了很多,N96是4M/s左右吧,N95是700k/s左右。
N96的滑盖相比N96做了优化,不会在那么松松垮垮,而且推起来手感很好。
当然,有些人觉得N96更漂亮,好像是挺漂亮的。
综上,如果是需求硬件的话,N95好,如果追求外观和易用性的话,N96好,当然,N96更贵。(贵不少)
海尔kr_40n/d内机定时灯闪5下
KFR-35GW/V(DBPZXF) KFR-25GW/V(DBPZXF) E2 室内热敏电阻异常 室内故障 E3 热交热敏电阻异常 室内故障 E4 室外EEPROM故障 室外控制板故障 E5 IPM保护 室外模块故障 E6 AC电流过流保护或电流传感器坏 室外模块故障 E7 CBD(室外控制板)与模块通讯故障 室外控制板故障 E8 压机过温\压力过高保护 室外控制板故障 E9 电源过压/欠压保护 室外模块故障 E10 压机堵转 室外模块故障 E11 吐出温度保护 室外控制板故障 E12 外风机异常保护 室外控制板故障 E13 室外除霜电阻异常 室外控制板故障 E14 室外吸气电阻异常 室外控制板故障 E15 室外环境电阻异常 室外控制板故障 E16 室外吐气电阻异常 室外控制板故障 E17 压机吸气过高 室外控制板故障 E18 内机、外机通讯异常 内外通讯故障 E19 室内EEPROM异常 室内故障 E20 内风机异常 室内故障 E21 压机运行失步压机脱离位置 室外模块故障 E22 位置检测回路故障 室外模块故障 E23 压机损坏 室外模块故障 E24 室内过负荷停机 室内故障 E25 室内防冰霜停机 室内故障 E26 室内TC不正常 室内故障 E27 压机振动过大 室外模块故障 压机启动异常 室外模块故障 三菱重工柜机故障代码 机型FDF505HES 无显示 室内机和室外机电源OFF、电源被关断、 操作开关电路板不良。 E1 操作开关线断、室内机电路板不良。 E2 室内机位置编号重复、室内机电路板不良。 E3 无对应室外机号码内外信号线断、室外机电源OFF 室外机号码设定不正确(设定了48或49) E4 室内机号码设定不正确(设定了48或49)室内机电路板不良。 E5 室内机、室外机通讯异常、室外机电源部分异常(室外机室内机电源分开时)、 室外机电路板不良。 E6 室内机热交换器热敏电阻不良、室内机电路板不良。 E7 室内机吸气热敏电阻不良、室内机电路板不良。 E8 内机热交换器温度高(暖气时)、室内机热交换用热敏电阻短路、室内机电路板不良。 E10 操作开关多台控制时台数超过。 E31 室外机号码重复、室外机电路板不良。 E32 电源反相或缺T相(初级)、室外机电路板不良。 E33 压缩机过电流、压缩机缺S相或R相(初级52C的次级配线) 缺相、室外机电路板不良 。 E34 52C的次级缺T相、室外机电路板不良。 E35 室外机热交换器温度高(冷气时)、室外机热交换器用热敏电阻不良(短路)、 室外机电路板不良。 E36 压缩机出口冷媒管温度过高、压缩机出口冷媒管温度热敏电阻不良、室外机 电路板不良。 E37 室外机热交换器热敏电阻不良、室外机电路板不良。 E38 室外机气温热敏电阻不良、室外机电路板不良。 E39 压缩机出口冷媒管热敏电阻不良、室外机电路板不良。 E40 室外机安全设备工作、室外机电路板不良。 面板有显示的还有以下几个: E57 制冷剂不足 E28 控制面板上SW13—6设置错误 处理方法:将SW13—6设置为OFF E9、E40 室外机异常 KFR-71QW/A故障代码(KFR-120QW/A) 运行灯闪 1下 室内环温坏 2 室内管温坏 3 室外环温坏 4 室外管温坏 KFR-60LW/BPF故障代码 E1 室温传感器故障 E2 室内盘管传感器故障 E3 室外环温传感器故障 E4 室外盘管传感器故障 E5 过电流保护 E6 管路压力保护 E7 室外低电压保护 E8 面板与主板通讯故障 E9 室内外通讯故障 E0 室内室外 通讯故障 LED 灯显示 L1 L2 室温传感器坏: 闪 1 灭 室内盘管传感器坏: 闪 2 灭 制热过载: 闪 4 灭 制冷接冰: 闪 5 灭 通信故障: 闪 7 灭 风机故障: 闪 8 灭 模块故障: 灭 闪 1 无负载: 灭 闪 2 压缩机过热: 灭 闪 4 总电流过流: 灭 闪 5 室外环温传感器坏: 灭 闪 6 室外管温传感器坏: 灭 闪 7 ROM坏: 灭 闪 8 电源过压保护: 灭 闪 10 制冷过载: 灭 闪 12 E2ROM错: 灭 闪 14 KTR-280QW/BP变频中央空调室外故障代码 显示内容 故障原因 04 变频信号回路,TRS电路故障 Ab 压力传感器(Pd,pS)误配线故障 AA 高压压力传感器(Pd)电路故障 AE 变频压缩机低频运转时排气温度TD1保护 A0 变频压缩机排气温度传感器TD1电路故障 A1 变频压缩机排气温度传感器TD2电路故障 A2 吸气温度传感器TS保护动作 A6 变频压缩机排气温度传感器TD1保护动作 A7 吸气温度传感器TS保护动作 BB 变频压缩机排气温度传感器TD2保护动作 BD Mg.ws1触点粘接,控制电路故障 BE 制冷系统低压保护 B4 制冷系统低压传感器PS电路故障 18 室外管温传感器TE电路故障 22 制冷系统高压传感器Pd电路故障 95 室内外通迅电路故障 96 室内外地址错误 89 室内外机组过载保护 IC 接口电路板故障 E1 定频压缩机高压电路故障 E5 变频侧IOL电路故障 E6 定频侧IOL,OL电路,电源相序错 KTR-280QW/BP变频中央空调INV室外 显示内容 故障原因 21 变频侧高压开关电路故障 17 电流互感器电路故障 14 变频侧过电流保护电路故障 1F 电流检测电路故障 1d 压缩机系统电路故障 KTR-280QW/BP变频中央空调室内故障代码 显示内容 故障原因 0C 室内温度传感器异常 0B 排水泵浮子开关异常 B5 外部输入显示 B6 外部连锁显示 B9 室内压力传感器异常 9A 室内机误配线 11 电动机(相位配制)电路异常 12 室内主控板回路异常 93 室内管温TC1传感器异常 94 室内管温TC2传感器异常 95 室内外通迅故障 97 集中控制通迅故障 98 集中控制地址设定错 9F 制冷剂不足 KR-70QW、KF-71QW/S、KF-120QW、KF125FW维修代码 E0 排系统故障 E1 室内感温器故障 E2 室内盘管传感器故障 E3 室外环温传感器故障 E4 室外盘管传感器故障 E5 过流保护 E6 管路压力保护 E7 面板与主板通迅故障 E8 主板与室外通讯故障 E9 缺相相序故障 商用空调(KTR系列): 室内机组 1. 室温传感器(TA) 电路 “OC” 2. 室内热交换传感器 (TC1)电路 “93” 3. 室内热交换传感器 (TC2)电路 “94” 4.室内压力传感器电路 “b9” 5.电机电路(相位控制)“11” 6.排水泵,浮子开关 系统电路 “0b” 7.制冷剂循环量不足判断“9F” 8.室内外通信电路 “95” 9.集中控制通信电路 “97” 10.集中控制地址设定 “98” 11.外部输入显示 “b5” 12.外部连锁显示 “b6” 13.室内机组误配线 误连接 “9A” 14.室内基板电路 “12” 15.系统冷媒不足判断 “Ed I/F 控制基板 1.变频串行信号回路,TRS 电路 “04” 2. 室外热交传感器(TE) 电路 “18” 3. 变频压机排气温度传感器 (TD1)电路 “A0” 4. 定频压机排气温度传感器 (TD2)电路 “A1” 5. 吸气温度传感器(TS) 电路 “A2” 6. 高压压力传感器(Pd) 电路 “AA” 7. 低压压力传感器(Ps) 电路 “b4” 8.接口基板电路 “1C” 9.高压保护动作 (Pd)传感器 “22” 10.变频压机排气温度 (TD1)保护动作 “A6” 11.定频压机排气温度 (TD2)保护动作 “bb” 12.吸气温度(Ts) 保护动作 “A7” 13.低频时变频压机排气温度 (TD1)保护动作 “AE” 14.低压压力保护动作 “bE” 15.定频压机用高压 开关电路 “E1” 16.变频IOL电路 “E5” 17.定频机IOL.OL电路,室外 机三相电相序异常 “E6” 18.压力传感器(Pd,Ps) 误配线 “Ab” 19.室内外通信电路 “95” 20.室内外地址矛盾 “96” 21.MgSW1触点粘连控制 显示 “bd” 22.连接室内机组容量过载 “89 KFRD-71LW/F(单相电源) E1: 室温传感器故障 E2: 室内盘管温度传感器 E3: 外环温传感器 E4: 外管温传感器 E5: 电流过大 E6: 压力保护 E7: 低电压保护 E8: (室内)面板。主板通信 E9: 室内。外通信 KFR-50、60LW/BPJ×F1变频柜式空调 显示代码 故障原因 E1 变频功率模块过热或过流短路 E2 电流传感器感应电流过小 E4 制热时压缩机温度传感器温度超过120度 E5 过电流保护 E6 室外环温异常 E7 室外管温异常 Ea 电源过压欠压保护 Ec 制冷时室外冷凝器超过70度 Ee EEPROM错误 F1 室内环温异常 F2 室内管温异常 F4 过热保护 F5 过冷保护 F7 室内主板与控制板通讯异常 KFR-60LW/BPF变频柜式空调(内) 显示代码 故障原因 E1 室内环温温度传感器故障 E2 室内管温温度传感器故障 E3 室外环温温度传感器故障 E4 室外管温温度传感器故障 E5 过电流保护 E6 压缩机过热保护 E7 室外电压低保护 E8 控制板与主板通讯故障 E9 室内外通讯故障 E0 室内外通信故障 L1 L2 闪1灭 室温传感器坏 闪2灭 室内盘管传感器坏 闪4灭 制热过载 闪5灭 制冷结冰 闪7灭 通信故障 闪8灭 风机故障 灭闪1 模块故障 灭闪2 无负载 灭闪4 压缩机过热 灭闪5 总电流过流 灭闪6 室外坏境传感器坏 灭闪7 室外管温传感器坏 灭闪8 ROM坏 灭闪10 电源过压保护 灭闪12 制冷过载 灭闪14 E2ROM错 6、7型柜式空调故障代码 显示代码 故障原因 E1 遥控器与空调通讯异常 E6 室内管温开路 E7 室内环温开路 E8 过热保护(制热状态) E40 室外机异常 E57 过冷保护(制冷状态) KFRD-52、62、71、120柜机 显示代码 故障原因 E1 室内环温传感器异常 E2 室内管温传感器异常 E3 室外环温传感器异常 E4 室外管温传感器异常 E5 过流保护 E6 系统管路压力保护 E7 室外低电压保护(170-180) E8 控制与主板通讯故障 E9 室内外通讯故障 KFR-71、120Q,KFR-125FW嵌入式 显示代码 故障原因 E0 室内排水系统故障 E1 室内环温温度传感器故障 E2 室内管温温度传感器故障 E3 室外环温温度传感器故障 E4 室外管温温度传感器故障 E5 过电流保护 E6 系统压力保护 E7 室内面板与室内主板通讯故障 E8 室内外板通讯故障 E9 电源相序错误或缺相 71LW/F柜机故障代码: E1 室内坏境温度传感器故障 E2 室内盘管传感器故障 E3 室外坏境传感器故障 E4 室外盘管传感器故障 E5 室外电流过大 E6 高压保护 E7 电压欠压保护 E8 控制面板和主板之间通信故障 KRS-32N新型暗藏式空调故障代码 显示代码 故障原因 E1 室内环温温度传感器故障 E2 室内机气管或水管温度传感器开路或短路 E3 室内外机通讯故障 E4 与电子膨胀阀驱动板通讯异常 E5 室内外通讯异常 E6 室内机液管温度传感器开路或短路 E7 控制与主板通讯故障 E9 室外机故障 空调故障代码 F1 冷藏蒸发器传感器短路或开路 F2 环境温度传感器短路或开路 F3 冷藏空间传感器短路或开路 F4 冷冻温度传感器短路或开路 F5 负7度温度传感器短路或开路9.澳柯玛4321故障代码 显示优先从上到下: 1. 室内温度传感器故障,数码管显示01。 2. 室内盘管传感器故障,数码管显示02。 3. 系统异常,数码管显示03。 4. 制冷防霜冻,数码管显示04。 5. 制热过载,数码管显示05. 近两年新款空调代码 1.KF(R)-25GW/HG(ZXF).KF(R)-35GW/HG(ZXF).KF(R)-23GW/HB(ZXF).KF(R)-33GW/HB(ZXF).KFR-28GW/HB(BPF).KFR-35GW/HB(BPF) 故障类型 运转制热 制冷 室内环境温度电阻异常 闪 灭灭 内管温电阻异常 闪 亮亮 EEPROM异常 闪 亮闪 内风机异常 灭 亮闪 2.KF(Rd)-50(60.71.75)LW/G(ZXF).KF(Rd)-58(60.68)LW/K(ZXF).KF(Rd)-48(58.68.71)LW/K(F).KF(Rd)-48(58.68.71)lw/k(XF).KF(Rd)-58(68.71)LW/K(YF).KFRd-50(60.71)LW/V(ZXF).KFRd-48(50.58.71)LW/Z2.KF-45(48.58.71)LW/Z2.KF(Rd)-48(58.68)LW/K2.KFRd-50(60.71)-LW/VA(ZXF).KFR-70LW/Z-(S).KF(Rd)-48(58.70)LW/Z.KF(Rd)-70LW/Z(S).KFRD-75LW/@(F) E1: 室内环境温度传感器异常 E2: 室内管温传感器异常 E6: 压力保护 E7: 低电压保护 E8: 面板与内机通讯故障 36BP、50BP空调故障代码 电源指示灯连续闪烁的次数 室内机故障原因 1 室温传感器相关故障 2 室内盘管传感器相关故障 4 制热室内盘管过热或传感器故障 5 制冷室内盘管过冷或传感器故障 6 CPU工作不正常 7 通讯故障 8 内风机故障(含霍尔元件坏) 9 电源接触不良 定时指示灯(黄色)连续闪烁的次数 室内机故障原因 1 IPM模块过热、过流、短路 2 室外压缩机无电(检流线圈、压缩机开路等) 4 压缩机过热 5 整机过流 6 室外环温传感器相关部位 7 室外盘管传感器相关部位 8 CPU故障 10 电源欠压 11 电源接触不良 12 制冷室外盘管温度超过72度 14 CPU故障 15 CPU工作条件不正常或CPU坏 KTR—160W/BPMR空调故障代码: 故障代码 故障内容 11 电动机相位控制异常 12 室内机控制异常 14 变频器过流 17 电流传感器部份异常 18 室外热交换器温度传感器TE异常 21 变频压缩机相关高压开关电路异常 22 高压保护动作 93 室内热交换传感器TC1电路异常 94 室内热交换传感器TC2电路异常 95 室内外通信电路异常 96 室内外通信地址异常 89 室内机组过载 OC 室内温度传感器TA电路异常 BD Mg1SW触点粘连 B9 室内压力传感器电路异常 AB 压力传感器配线有误 97 集中控制通信电路异常 98 集中控制地址设定异常 E5 变频IOL电路异常 E6 定频IOL电路异常 E1 定频压缩机相关高压开关电路异常 OB 排水泵、浮子开关电路异常 B5 外部输入显示异常 9F 制冷剂循环量不足 AE 低频时变频压缩机排气温度传感器TD1保护动作 BE 低压压力保护动作 A0 定频压缩机排气温度传感器TD1电路异常 A1 定频压缩机排气温度传感器TD2电路异常 A2 吸气温度传感器TS电路异常 A6 变频压缩机排气温度传感器TD1保护动作 A7 变频压缩机排气温度传感器TD2保护动作 B6 外部连锁显示异常 9A 室内机组配线有误 1D 压缩机系统异常 1F 电路检测部份异常 1C 接口基板电路异常. A4 高压压力传感器PD电路异常 B4 低压压力传感器PS电路异常 KR-70QW、KF-71QW/S、KF-120QW、KF125FW维修代码 E0 排系统故障 E1 室内感温器故障 E2 室内盘管传感器故障 E3 室外环温传感器故障 E4 室外盘管传感器故障 E5 过流保护 E6 管路压力保护 E7 面板与主板通迅故障 E8 主板与室外通讯故障 E9 缺相相序故障 KFR-28、36GW/BPJF分体空调 显示代码 故障原因 E1 室内环温温度传感器故障 E2 室内管温温度传感器故障 E8 主板电源不良或高压集尘板打火 E9 过热保护 E07 通讯故障 F4 室外压缩机排气温度超过120度 F6 室外环温传感器故障 F11 压缩机或IPM变频模块异常 F21 室外除霜温度传感器故障 F22 过电流保护(AC电流检测) F23 过电流保护(DC电流检测) F24 CT断线 F25 室外排气温度传感器故障 MRV || 5e中央空调 故障代码表 故障检测 1 系统故障代码显示,分配如下: 0-----9 内机故障 20---70 变频外机故障 71---100 定频外机故障 *注意* 按照转盘开关SW3,SW4,SW5 的设定,将SW3,SW4,SW5拨到故障检查位置,个内外机的故障代码就才会在数码管上显示出来 根据显示出来的故障代码,可以找出详细的故障内容,从而快速的排除故障。 2:故障代码定义 外机变频主机故障代码表 主机LED显示故障代码 20 室外除霜温度传感器TE电路变频主板显示20 MRV || 5e 变频中央空调故障代码 内机故障显示代码 主机显示代码 线控器显示代码 内电脑板LED5遥控接收窗定时等闪烁次数 01 01 1 02 02 2 03 03 3 04 04 4 05 05 5 06 06 6 07 07 7 08 08 8 09 09 9 0A 0A 0 室内码 室外码 20故障详细内容 01 室内环温传感器TA故障 02 室内管温传感器TC1故障 03 室内管温传感器TC2故障 04 室内双热源传感器故障 05 室内EERROM故障 06 室内机与室外机通讯故障 07 室内机与线控器通讯故障 08 室内机排水故障 09 室内地址重复故障 10 集中控制地址重复故障 20 室外机相对应的故障
Python绘图Turtle库详解
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
turtle 绘图的基础知识:
1. 画布(canvas)
画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。
设置画布大小
turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别为画布的宽(单位像素), 高, 背景颜色。
如:turtle.screensize(800,600, "green")
turtle.screensize() #返回默认大小(400, 300)
turtle.setup(width=0.5, height=0.75,
startx=None, starty=None),参数:width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。
如:turtle.setup(width=0.6,height=0.6)
turtle.setup(width=800,height=800, startx=100, starty=100)
2. 画笔
2.1 画笔的状态
在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。
2.2 画笔的属性
画笔(画笔的属性,颜色、画线的宽度等)
1) turtle.pensize():设置画笔的宽度;
2) turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。
3) turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
2.3 绘图命令
操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令。
(1) 画笔运动命令
命令说明
turtle.forward(distance)向当前画笔方向移动distance像素长度
turtle.backward(distance)向当前画笔相反方向移动distance像素长度
turtle.right(degree)顺时针移动degree°
turtle.left(degree)逆时针移动degree°
turtle.pendown()移动时绘制图形,缺省时也为绘制
turtle.goto(x,y)将画笔移动到坐标为x,y的位置
turtle.penup()提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.circle()画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆
setx( )将当前x轴移动到指定位置
sety( )将当前y轴移动到指定位置
setheading(angle)设置当前朝向为angle角度
home()设置当前画笔位置为原点,朝向东。
dot(r)绘制一个指定直径和颜色的圆点
(2) 画笔控制命令
命令说明
turtle.fillcolor(colorstring)绘制图形的填充颜色
turtle.color(color1, color2)同时设置pencolor=color1, fillcolor=color2
turtle.filling()返回当前是否在填充状态
turtle.begin_fill()准备开始填充图形
turtle.end_fill()填充完成
turtle.hideturtle()隐藏画笔的turtle形状
turtle.showturtle()显示画笔的turtle形状
(3) 全局控制命令
命令说明
turtle.clear()清空turtle窗口,但是turtle的位置和状态不会改变
turtle.reset()清空窗口,重置turtle状态为起始状态
turtle.undo()撤销上一个turtle动作
turtle.isvisible()返回当前turtle是否可见
stamp()复制当前图形
turtle.write(s
[,font=("font-name",font_size,"font_type")])
写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项
(4) 其他命令
命令说明
turtle.mainloop()或turtle.done()启动事件循环 -调用Tkinter的mainloop函数。
必须是乌龟图形程序中的最后一个语句。
turtle.mode(mode=None)设置乌龟模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式。
模式初始龟标题正角度
standard向右(东)逆时针
logo向上(北)顺时针
turtle.delay(delay=None)设置或返回以毫秒为单位的绘图延迟。
turtle.begin_poly()开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。
turtle.end_poly()停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。
turtle.get_poly()返回最后记录的多边形。
准备把全部"家当"送给会C语言编程的大虾!
/*=========================clock.c========================
下面是TC做的时钟
要求:TC目录下得有EGAVGA.BGI文件
每秒发出“喀嗒喀嗒”的声音
整点用5声低1声的响声来报点
======================================================*/
#include math.h
#include dos.h
#include Graphics.h
#define CENTERX 320 /*表的中心坐标X*/
#define CENTERY 175 /*表的中心坐标Y*/
#define CLICK 100 /*每秒发出的频率*/
#define CLICKDELAY 30 /*第秒发出的声音的持续时间*/
#define HIBEEP 1000 /*高频*/
#define LOWBEEP 500 /*低频*/
#define BEEPDELAY 200 /*整点报时的持续时间*/
int Mark_1[8]={-5,-160,5,-160,5,-130,-5,-130};
int Mark_2[8]={-5,-160,5,-160,2,-130,-2,-130};
int HourHand[8]={-3,-100,3,-100,4,10,-4,10};
int MinHand[8] ={-3,-120,3,-120,4,10,-4,10};
int SecHand[8] ={-2,-150,2,-150,3,10,-3,10};
/*发出喀嗒声并延时*/
void Click(void)
{
sound(CLICK);
delay(CLICKDELAY);
nosound();
}
/*高声报时*/
void HighBeep(void)
{
sound(HIBEEP);
delay(BEEPDELAY);
nosound();
}
/*低声报时*/
void LowBeep(void)
{
sound(LOWBEEP);
delay(BEEPDELAY);
nosound();
}
/*画多边形*/
void DrawPoly(int *data,int angle,int color)
{
int usedata[8];
float sinang,cosang;
int i;
sinang=sin((float)angle/180*3.14);
cosang=cos((float)angle/180*3.14);
for (i=0;i8;i+=2)
{
/*一个矢量旋转angle角后的坐标,通过两角和公式计算出来的结果*/
usedata[i] =CENTERX+cosang*data[i]-sinang*data[i+1]+0.5;
usedata[i+1]=CENTERY+sinang*data[i]+cosang*data[i+1]+0.5;
}
setfillstyle(SOLID_FILL,color);
fillpoly(4,usedata);
}
/*画时钟*/
void DrawClock(struct time *curtime)
{
int ang;
float hourrate,minrate,secrate;
setbkcolor(BLUE);
cleardevice();
setcolor(WHITE);
for (ang=0;ang360;ang+=90) /*画表盘*/
{
DrawPoly(Mark_1,ang ,WHITE);
DrawPoly(Mark_2,ang+30,WHITE);
DrawPoly(Mark_2,ang+60,WHITE);
}
secrate = (float) curtime-ti_sec/60; /*秒对分针以及时针的贡献*/
minrate =((float) curtime-ti_min+secrate)/60; /*分针角度*/
hourrate=((float)(curtime-ti_hour%12)+minrate)/12;/*时针角度*/
ang=hourrate*360;
DrawPoly(HourHand,ang,YELLOW); /*画时针*/
ang=minrate*360;
DrawPoly(MinHand, ang,GREEN); /*画分针*/
ang=secrate*360;
DrawPoly(SecHand, ang,RED); /*画秒针*/
}
void main(void)
{
int gdriver=EGA,gmode=EGAHI;
int curpage;
struct time curtime,newtime;
initgraph(gdriver,gmode,"");
setbkcolor(BLUE);
cleardevice();
gettime(curtime);
curpage=0;
DrawClock(curtime);
while(1)
{
if (kbhit())
break;
gettime(newtime);
if (newtime.ti_sec!=curtime.ti_sec) /*一秒钟更新一次*/
{
curpage|=0X0001; /*0、1更新*/
curtime=newtime;
setactivepage(curpage);
DrawClock(curtime);
setvisualpage(curpage);
/*整点发出高频的音*/
if (newtime.ti_min==0newtime.ti_sec==0) /*整点*/
HighBeep();
else if (newtime.ti_min==59newtime.ti_sec=55newtime.ti_sec59) /*将近整点的时候,发出五声你音*/
LowBeep();
else /*其他时间,喀嗒声*/
Click();
}
}
closegraph();
}