[转]html5之Canvas坐标变换应用-时钟实例

发布时间:2018-12-19  栏目:法律  评论:0 Comments

本文转自:http://www.cnblogs.com/ttzhang/archive/2008/11/07/1328533.html

正文转自:http://www.cnblogs.com/whitewolf/archive/2011/03/02/1969398.html

 

 

当直达同样篇路管理实施课程二、源代码控制【Source Control Using VisualSVN
Server and
TortoiseSVN】
遭我们早已教了什么样行使TortoiseSVN和VisualSVN
Server来举办简单的版本控制,这无异首我们用会见教下CruiseControl.NET和MSBuild来搭建每一日构建系统。

每当达标一致首被咱们精晓html5的Canvas
,在当下同样篇被不用多说,写一个html5的钟应用程序试手。在此间根本安装了坐标变换的动(translate)和旋转变换(ratate),以及html5
Canvas的途径绘图,beginPath,closePath,rect,arc等,还有就是是html5
Canvas路径绘图首要的绘图状态的保存及还原机制,save,restore。

每当第一篇品类管理推行课一、工欲善其事,必先利其器【Basic
Tools】

中我们早已安装了CruiseControl.NET
1.4,因为我们还要选择MSBuild,所以假若您的系统没有装Visual
Studio,那么你待首先安装Visual Studio
2005/2008,我们于此间用的凡Visual Studio
2008,准备好那多少个了啊?OK,我们专业开班明日的科目! 

  
多之吗未说了,直接上代码,有非破的迎提问,以及针对性我的提议指教都可以,图片 1

先是,大家只要配备CruiseControl.NET【上面简写为CCNET】,配置好后,大家每一遍交源代码到SVN服务器后,CCNET就足以自行从SVN服务器上签出源代码,并调用MSBuild自动举行编译。我们坐前几日之课程被创建的Start基特(Kit)项目也实例,先看上边的布局文件:

ff下力量图:

图片 2图片 3CCNET配置文件代码
1 <cruisecontrol xmlns:cb=”urn:ccnet.config.builder”>
  2    <!–项目名称–>
  3    <name>StartKit</name>
  4    <!–标示类型,有多连串型。下边为默认标示,作为每一回编译时变的日记文件之名目–>
  5    <labeller type=”defaultlabeller”>
  6        <!–前缀–>
  7         <prefix>StartKit-1-</prefix>
  8        <!–编译失败时是不是增添–>
  9         <incrementOnFailure>false</incrementOnFailure>
 10       <!–格式–>
 11        <labelFormat>00000</labelFormat>
 12   </labeller>
 13   <!–项目之WebDashboard地址,CruiseControl.NET包括二有的,一凡Server用来配置型以及监文件修改,二是WebDashboard,是一个形档次音讯和编译音讯之Website–>
 14       <webURL>http://202.196.96.55:8080/server/local/project/StartKit/ViewProjectReport.aspx&lt;/webURL&gt;
 15   <!–触发器,包含多,有趣味可以查阅官方文档–>
 16   <triggers>
 17   <!–时间距离触发器,下面是60秒触发一样蹩脚–>
 18         <intervalTrigger seconds=”60″ />
 19   </triggers>
 20   <!–假如发现修改,延迟多长时间开头编译,下边是2秒–>
 21   <modificationDelaySeconds>2</modificationDelaySeconds>
 22   <!–源代码控制体系,援助多,有趣味可以查官方文档,下边用svn–>
 23   <sourcecontrol type=”svn”>
 24   <!–源代码在SVN服务器上之不二法门–>
 25         <trunkUrl>http://zt.net.henu.edu.cn/svn/StartKit/StartKit/&lt;/trunkUrl&gt;
 26   <!–svn服务器所于路线,在此地虽是VisualSVN Server安装目录中之bin目录下之svn.exe –>
 27         <executable>C:/Program Files/VisualSVN Server/bin/svn.exe</executable>
 28     <!–用来搬迁出源代码的用户称,svn服务器进行验证–>
 29   <username>starter</username>
 30   <!–用来搬迁出源代码的用户称对应之密码–>
 31         <password>123456</password>
 32       <!–web得到取源代码的地方,类似于开源网站及浏览代码的那么部分功能,这里的品类是trac–>
 33   <!–<webUrlBuilder type=”trac”>
 34       <!–trac中对承诺项目之地点¬–>
 35         <tracProjectUrl>http://svn.net.henu.edu.cn/pojects/StartKit/&lt;/tracProjectUrl&gt;
 36         <!–trac中对诺项目标源代码库地址,绝对于点的路–>
 37         <tracRepositoryRoot>/StartKit</tracRepositoryRoot>
 38         </webUrlBuilder>–>
 39   </sourcecontrol>
 40   <!–该节点用来布局具体实施这些任务–>
 41   <tasks>
 42   <!–msbuild任务安排,用来编译项目–>
 43         <msbuild>
 44           <!–MSBuild.exe的路径–>
 45           <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
 46           <!–从SVN迁来底源代码的存地点,可以不布置,上面的即为默认值 –>
 47           <!–我这里的CruiseControl.NET 安装在D盘,你们用下,改化温馨之装置路径即可–>
 48           <workingDirectory>D:\Program Files\CruiseControl.NET\server\StartKit\WorkingDirectory</workingDirectory>
 49           <!–对之类型之督查过程的日记记录目录,能够无配备,上边的就为默认值–>
 50           <!–我此的CruiseControl.NET 安装在D盘,你们下时,改化团结之设置路径即可–>
 51            <artifactDirectory> D:\Program Files\CruiseControl.NET\server\StartKit\ Artifacts</artifactDirectory>
 52           <!–要编译的项目名称 –>
 53   <projectFile>StartKit.sln</projectFile>
 54   <!– MSBuild编译时的参数,具体参数信息可以查看MSDN上之辨证–>
 55           <buildArgs>/p:configuration=debug</buildArgs>
 56           <!–指定日志记录模块–>
 57          <!–我此的CruiseControl.NET 安装在D盘,你们下时,改化团结的装路径即可–>
 58           <logger>ThoughtWorks.CruiseControl.MsBuild.XmlLogger,D:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
 59           <!–编译目的–>
 60   <targets />
 61         </msbuild>
 62           <!–以此地还好增长其它的程序,比如运行测试、部署项目等等–>
 63   </tasks>
 64   <!–项目编译状态音信的保存地点–>
 65   <!–我这里的CruiseControl.NET 安装于D盘,你们用上,改成为温馨之设置路径即可–>
 66       <state type=”state” directory=”D:\Program Files\CruiseControl.NET\server\CCState” />
 67   <!–发表以及布局安排–>
 68   <publishers>
 69     <!–假设编译成功,那么下边的布置,会将源代码复制到指定目录HistoryVersion下,名称也本标识(自动增长,labeller配置)的子目录下–>
 70     <buildpublisher>
 71       <!–源代码路径–>
 72       <!–我那里的CruiseControl.NET 安装在D盘,你们下上,改化温馨的设置路径即可–>
 73        <sourceDir> D:\Program Files\CruiseControl.NET\server\StartKit\WorkingDirectory </sourceDir>
 74        <!–编译成功后保存源代码到拖欠目录下称为本标示labeller的目录中–>
 75       <!–我这里的CruiseControl.NET 安装在D盘,你们用上,改化温馨之装置路径即可–>
 76   <publishDir> D:\Program Files\CruiseControl.NET\server\StartKit\HistoryVersion </publishDir>
 77     </buildpublisher> 
 78   <!–该节点用来布局合并五只文件,当时来表面插件时,要管她们各自发出的出口文件合并–> 
 79         <merge>
 80           <!–要联合的文本,合并后底信息可以显示在Web Dashboard和邮件通告里–>
 81           <files>
 82               <!–我这边的CruiseControl.NET 安装于D盘,你们用下,改成为温馨之设置路径即可–>
 83             <file>D:\Program Files\CruiseControl.NET\server\StartKit\WorkingDirectory\results.xml</file>
 84           </files>
 85         </merge>
 86           <!–源代码路径–>
 87         <xmllogger />
 88           <!–显示历史修改记录列表, 在Web Dashboard中得以查–>
 89        <modificationHistory />
 90          <!–所有编译音信的总计, 在Web Dashboard中可以查看–>
 91         <statistics />
 92           <!–邮件布告部署,每一回编译后,都会晤邮件通告下配置中添加的用户–>
 93         <!– mailhost是发送邮件的主机,mailport是邮件发送端口,mailhostUsername发送邮件的邮箱用户称,mailhostPassword发送邮件的信箱密码,from希望展现在发件人饱受的邮箱地址, includeDetails邮件内容是否带有详细的编译信息 –>
 94   <email mailhost=”smtp.qq.com” mailport=”25″
 95                    mailhostUsername=”******” mailhostPassword=”******” from=”******@qq.com” includeDetails=”true”>
 96           <!–接收邮件通知的用户 –>
 97   <users>
 98     <!–name是SVN服务器上在的用户称,group是SVN服务器上有的组,address是欠用户之邮箱地址 –>
 99             <user name=”zt” group=”StartKit” address=”******1@qq.com” />
100            <user name=”***” group=”StartKit” address=”******2@qq.com” />
101           <user name=”***” group=”StartKit” address=”******3@qq.com” />
102          </users>
103          <!–接收邮件布告之组–>  
104        <groups>  
105          <!–name必须是SVN服务器上是的组,notification是啊时候发送公告,可选有Always/Success/Change/Fixed/Failed –> 106           <group name=”Start基特(Kit) ” notification=”always” /> 107          </groups>  
108        </email>  
109      </publishers>  
110    </project>  
111  <!–可以以丰盛多少个连串  
112  <project >  
113  <name>test</name>  
114  ……  
115  </project>  
116  –>  
117  </cruisecontrol

图片 4

哼了,我们就对CCNET的布局文件发出了盖的刺探,接下,你打开CCNET的安路径,找到子目录server下的ccnet.config文件,把地方的配备音讯Copy到ccnet.config文件被,记得把部署文件中之片路子修改也投机的骨子里路径啊,修改好后,保存。这时候,检查Windows服务CruiseControl.NET
Server是否启动,假若没则启动它,启动该服务后,打开浏览在地方栏输入上边配置文件被之webUrl地址:http://202.196.96.55:8080/server/local/project/StartKit/ViewProjectReport.aspx
也可一贯输入http://202.196.96.55:8080/server/
,这里是出现说法地址,要因自己之骨子里状况修改为不易的地点,OK,看到类似下图的效率,好了,搞定!假诺您碰到了呀麻烦,请以脚留言,我一定会这还原!
图片 5点击Start基特,转入下图所出示之页面:
图片 6OK,到这边,我们提交更新到SVN服务器后,CCNET就会基于大家安排活动编译项目,而且我们为得以因此Web
Dashboard来查看具体的编译音讯了,提醒而安排了邮件发送,那么我们尚足以经邮件收到详细的编译信息,咋样?够好吧!

代码:

骨子里,CCNET的效率是非常强大的,上面只是最常用之布局,其他还有好多不行好之效劳。你想了然吗?那若得以这边翻CCNET官方文档
,实际上,你安装CCNET后,文档也早就安装到您的微机了,在CCNET的设置目录下的webdashboard的子目录doc中即便是。

图片 7图片 8View Code

哼了,大家前些天之课程就顶此,本来我应该拿哪些行使CruiseControl.NET
Tray来监视每一回换代后的编译状态,然如今确太晚矣,先天还要做项目,所以自己明日上及,请大家见谅!
加部分:
脚我大概讲一下,怎么样行使CruiseControl.NET
Tray【以下简称CCTray】来监视每便交后底编译状态。
安好打开CCTray后,运行CCTray程序,点击左上角的菜单File下的Settings…,如下图:
图片 9
点击Settings…会弹出下面的窗体:
图片 10
切换到Build Projects选项卡,如下图:
图片 11
点击Add…按钮,添加大家的CCNET服务器,如下图:
图片 12
输入我们的CCNET服务器后,CCNET服务器上的品种即会在左边呈现出来,如下图:
图片 13
入选右边的路后,点击OK按钮,重临CCTray打开时的界面,我们的亚独档次既增长上了,如下图:
图片 14
俺们当桌面的动手下角的任务栏,可以见见如下图所呈现之图标:
图片 15
藏红色的老标示就是CCTray的标志,绿色代表拥有的种都经了编译,紫灰色表示至少暴发一个档没有通过编译,橘红色表示来型正在编译,橘黑色表示来档次给恐吓编译,呈现也青色则表明和CCNET服务器失去了链接。

<html> <head> </head> <body> <canvas
id=”myCanvas” width=”600″
height=”300″>你的浏览器还免匡助啊</canvas> <script
type=”text/javascript”> var c = document.getElementById(“myCanvas”);
var cxt = c.getContext(“2d”); var slen = 60; var mlen = 50; var hlen =
40; cxt.strokeRect(0, 0, c.width, c.height); cxt.beginPath();
cxt.strokeStyle = “#00f”; cxt.fillStyle = “#00f”; cxt.arc(200, 150, 5,
0, 2 * Math.PI, true); cxt.fill(); cxt.closePath(); cxt.beginPath();
cxt.strokeStyle = “#00f”; cxt.arc(200, 150, 100, 0, 2 * Math.PI,
true); cxt.stroke(); cxt.closePath(); cxt.beginPath();
cxt.translate(200, 150); //平移原点; cxt.rotate(-Math.PI / 2);
cxt.save(); for (var i = 0; i < 60; i++) { if (i % 5 == 0) { //
cxt.fillStyle = “#ff0000”; cxt.fillRect(80, 0, 20, 5); cxt.fillText(“”

OK,我们可以动用CCTray实时监视提交更新后项目之编译状态了。

  • (i / 5 == 0 ? 12 : i / 5), 70, 0); } else { // cxt.strokeStyle =
    “#00f”; cxt.fillRect(90, 0, 10, 2); }
    //document.getElementById(“div1″).innerText += ” ” + i;
    cxt.rotate(Math.PI / 30); } cxt.closePath(); var ls = 0, lm = 0, lh = 0;
    function Refresh() { cxt.restore(); cxt.save(); cxt.rotate(ls * Math.PI
    / 30); cxt.clearRect(5, -1, slen+1, 2+2); cxt.restore(); cxt.save();
    cxt.rotate(lm * Math.PI / 30); cxt.clearRect(5, -1, mlen+1, 3+2);
    cxt.restore(); cxt.save(); cxt.rotate(lh * Math.PI / 6);
    cxt.clearRect(5, -3, hlen+1, 4+2); var time = new Date(); var s =
    ls=time.getSeconds(); var m = lm=time.getMinutes(); var h =
    lh=time.getHours(); cxt.restore(); cxt.save(); cxt.rotate(s * Math.PI /
    30); cxt.fillRect(5, 0, slen, 2); cxt.restore(); cxt.save();
    cxt.rotate(m * Math.PI / 30); cxt.fillRect(5, 0, mlen, 3);
    cxt.restore(); cxt.save(); cxt.rotate(h * Math.PI / 6); cxt.fillRect(5,
    -2, hlen, 4); } var MyInterval = setInterval(“Refresh();”, 1000);
    </script> <div id=”div1″ style=”
    background:#00f;”></div> </body> </html>

假定大家来什么问题,欢迎和本身沟通!

比如 Ctrl+C 复制代码

 

    

旁作品推荐项目管理实践体系教程
Visual Studio
2008中怎么相比较二只数据库的架【Schema】和数目【Data】并联合

         我的html5系列:

作者:Forrest
Zhang(http://www.anycoders.com
出处:http://ttzhang.cnblogs.com/
本博原创著作版权归果壳网和我共有,欢迎转载,但未经作者同意要保留这一个段子讲明,且在篇章页面显著地方于来作者称及原文连接,否则保留追究法律责任的权。

  1. html5声频audio和视频video
  2. html5-Canvas绘图
  3. html5底Canvas坐标变换应用-时钟实例
  4. html5-web本地存储

 

 

作者:破  狼
出处:http://www.cnblogs.com/whitewolf/
正文版权归作者和网易、CSDN共有,欢迎转载,但未经作者同意要保留那些段子声明,且在随笔页面明显地点被起原文连接,否则保留追究法律责任的权利。该著作也罢还要发表在自家之单身博客中-博客园–破狼CSDN–野狼

 

留下评论