世界上最短的時鐘代碼!更短的,有木有?

来源:http://www.cnblogs.com/shouce/archive/2016/05/30/5541082.html
-Advertisement-
Play Games

一.簡介 Processing.js作者是John Resig,這是繼Jquery之後,他的第二個力作。 Processing.js提供了教學可視化的編程語言及運行環境。通過編寫processing程式,教師可以將複雜的物理、化學、數學原理形象的展示給學生。比如繪製各種曲線圖,波線,粒子,繪製分子結 ...


一.簡介

Processing.js作者是John Resig,這是繼Jquery之後,他的第二個力作。

Processing.js提供了教學可視化的編程語言及運行環境。通過編寫processing程式,教師可以將複雜的物理、化學、數學原理形象的展示給學生。比如繪製各種曲線圖,波線,粒子,繪製分子結構,當然在生理衛生課上還可以繪製一群小蝌蚪在游泳等動態的圖形。

Processing.js是一個開放的編程語言,在不使用Flash或Java小程式的前提下, 可以實現程式圖像、動畫和互動的應用。 
Processing.js使用JavaScript繪製形狀sharp和操作HTML5 canvas元素產生圖像動畫。 
Processing.js是輕量,易於瞭解掌握,並提出一個理想的工具,可視化的數據,創建用戶界面和開發基於Web的游戲。
 

二.核心函數

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 // Global variables 全局變數 int radius = 50.0; int X, Y; int nX, nY; int delay = 16; // Setup the Processing Canvas初始化設置 void setup(){ size( 200, 200 ); strokeWeight( 10 ); frameRate( 15 ); X = width / 2; Y = width / 2; nX = X; nY = Y; } // Main draw loop 主要繪畫函數功能 void draw(){ radius = radius + sin( frameCount / 4 ); // Track circle to new destination X+=(nX-X)/delay; Y+=(nY-Y)/delay; // Fill canvas grey background( 100 ); // Set fill-color to blue fill( 0, 121, 184 ); // Set stroke-color white stroke(255); // Draw circle ellipse( X, Y, radius, radius ); } // Set circle's next destination 當用戶滑鼠在 Canvas移動時產生的action void mouseMoved(){ nX = mouseX; nY = mouseY; }

三.世界最短的時鐘代碼誕生

1 2 3 4 5 6 void draw() { size(200, 200);background(0); fill(80); noStroke(); ellipse(100, 100, 160, 160); stroke(255); line(100, 100, cos( TWO_PI*second()/60- HALF_PI) * 70 + 100, sin(TWO_PI*second()/60- HALF_PI) * 70 + 100); line(100, 100, cos( TWO_PI*minute()/60- HALF_PI) * 60 + 100, sin(TWO_PI*minute()/60- HALF_PI) * 60 + 100); line(100, 100, cos(TWO_PI*(hour()%12)/12- HALF_PI) * 50 + 100, sin(TWO_PI*(hour()%12)/12- HALF_PI) * 50 + 100); }

可以看得出,代碼語意化非常強,一個圓,三條線,這也是這個框架所要達到的目的之一。

 

四.完整代碼

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!DOCTYPE html> <html> <head> <body> <script src="http://files.cnblogs.com/iamzhanglei/processing.js" type="text/javascript"></script> <script type="application/processing"> void draw() { size(200, 200);background(0); fill(80); noStroke(); ellipse(100, 100, 160, 160); stroke(255); line(100, 100, cos( TWO_PI*second()/60- HALF_PI) * 70 + 100, sin(TWO_PI*second()/60- HALF_PI) * 70 + 100); line(100, 100, cos( TWO_PI*minute()/60- HALF_PI) * 60 + 100, sin(TWO_PI*minute()/60- HALF_PI) * 60 + 100); line(100, 100, cos(TWO_PI*(hour()%12)/12- HALF_PI) * 50 + 100, sin(TWO_PI*(hour()%12)/12- HALF_PI) * 50 + 100); } </script> <canvas>你的瀏覽器不支持HTML5,請使用谷歌、IE9或者火狐瀏覽器··</canvas> </body> </html>

五.線上演示

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 搞開發的人,包括我自己,有時缺少了對於價值的判斷能力。 昨天看了一篇關於聯想和華為的文章,有些感觸。裡面提到一個觀點,聯想是產品驅動,華為是技術驅動,導致了多年後兩家公司的巨大反差。 這其中就有個在互聯網公司的常態化問題:一般都是產品汪來領導技術猿,產品經理多數是項目經理的角色,主要的精力只能用在搞 ...
  • while迴圈是PHP中最簡單的迴圈,其基本格式為: 該語法表示,只要expr表達式為TRUE,那麼就一直執行statement直到expr為FALSE為止,statement表示要執行的動作或邏輯。 該例子迴圈輸出1到10。 原文地址:http://www.manongjc.com/php/php ...
  • 為了方便直觀我們使用Head插件提供的介面進行演示,實際上內部調用的RESTful介面。 RESTful介面URL的格式: http://localhost:9200/<index>/<type>/[<id>] 其中index、type是必須提供的。 id是可選的,不提供es會自動生成。 index ...
  • #include<stdio.h> #include<stdlib.h> #include<time.h> double jieguo(); void main(){ int i,k; int m,n; int j; printf("請輸入購買的號碼:\n"); scanf("%d",&i); j= ...
  • 偶爾調試代碼的時候會出現這種事情,之前並沒有特別註意,今天稍微搜集一下相關資料: 1.跳轉到的代碼的確沒有源碼,下載源碼後選擇源碼位置後便會正常顯示源碼. 2.源碼和class文件不一致.即便勾選了auto build選項,eclipse依然存在class沒有實時編譯的情況,致使我們當前的代碼和編譯 ...
  • SpringBoot啟動過程: 1、構建SpringApplication對象 2、執行run() 一、構建SpringApplication對象 說明: 實例化該類的時候會載入bean到applicationContext中去 這裡的入參是MySpringApplication.class這樣一個 ...
  • 本文結合實例詳述了策略模式的實現方式,並介紹瞭如何結合簡單工廠模式及Annotation優化策略模式。最後分析了策略模式的優缺點及已(未)遵循的OOP原則 ...
  • 在一個招聘網站中,通過限制用戶選擇職位標簽個數,可以精確定位用戶的職位。例如,以覆選框的形式為用戶提供一下備選職位標簽,限制用戶最多選擇3個,當超過三個時禁止用戶繼續選擇。 覆選框在問卷調查,招聘網站用的很廣,今天來介紹一下限制覆選框最多選擇幾項的方法: 思路: 監聽覆選框的onclick事件 監聽 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...