1. 程式人生 > >html5學習筆記二:利用canvas繪製簡單圖形

html5學習筆記二:利用canvas繪製簡單圖形

一,認識canvas

Canvas是html5新增的開發跨平臺動畫 遊戲的標準方案,能夠實現對圖形和視訊進行畫素級操作,這為web圖形和視訊處理打開了廣闊的空間。藉助canvas,使用者可以再web中繪製各種圖形。Canvas元素及隨其而來的程式設計介面canvas api應用前景非常廣闊,按照我的理解canvas元素能夠在網頁中建立一個矩形的畫布,我們可以在畫布上進行繪製圖形。

二,1:在頁面新增canvas元素:帶邊框的矩形

<!DOCTYPE HTML>

<html>

<body>

<canvas id="myCanvas"style="border:1pxsolid;"width="200"height="100"></canvas>

</body>

</html>


2:利用canvas畫一個矩形

         第1步:增加id為easy的canvas元素,寬和高為300和150

<canvasid="easy" style="border:1px solid;" width="300"height="150"></canvas>

第2步:使用id尋找元素。Keypoint:doucument.GetElementById函式

varc=document.getElementById("myCanvas");

第3步:通過canvas元素的getContext方法獲取上下文,建立context物件以獲取允許進行繪製的2D環境。

varcontext=c.getContext("2d");

第4步:使用javascript進行繪製。

context.fillStyle="#FF00FF";

context.fillRect(0,0,200,100);

fillstyle將填充顏色定義為粉紅色,fillrect定義繪製形狀為矩形,還定義了其四個頂點位置。

<!DOCTYPEHTML>

<html>

<body>

<canvasid="easy" style="border:1px solid;" width="300"height="150"></canvas>

<scripttype="text/javascript">

varc=document.getElementById("myCanvas");

varcontext=c.getContext("2d");

context.fillStyle="#FF00FF";

context.fillRect(0,0,200,100);

</script>

</body>

</html>

效果圖:

接下來說明下fillStyle 和strokeStyle區別:

在上例程式碼中加入

效果圖:

fillstroke是輪廓,fillstyle是填充

3,繪製圓形

首先介紹下context.arc(x,y,radius,startAangle,endAangle,anticlockwise);

這是繪製圓形的函式,引數如上最後一個是按照什麼順時針(true)或逆時針(false)畫圓

必須配合beginPath和endPath(閉合曲線)進行畫圓

<!DOCTYPE HTML >
<html>
  <head>
  <meta  charset="utf-8">
  <title>"first canvas "</title>
  </head>
  <body>
   <canvas id="myCanvas" style="border:1px solid;" width="2000" height="1000"></canvas>
   <script type="text/javascript">
   var canvas=document.getElementById("myCanvas");


            var context=canvas.getContext("2d");
            for(var i=1;i<5;i++){
            context.strokeStyle="#FF00FF";
            context.strokeRect(0,0,50*i,25*i);
            }
   for(var i=1;i<15;i++){
            
            context.strokeStyle="blue";
            context.beginPath();
            context.arc(300,0,i*10,0,Math.PI*1/2,false);
            context.closePath();
            context.stroke();
            }
            
   </script>
  </body>
</html>

效果圖


4,清除畫布

context.clearRect(x,y,width,height);

清除的是一個矩形區域

<!DOCTYPE HTML >
<html>
<head>
  <!--<meta  charset="utf-8">    -->
  <title>"first canvas "</title>
  
  </head>    
 
  <body>
   
 
   <canvas id="myCanvas" style="border:1px solid;" width="500" height="250"></canvas>
    <script type="text/javascript"> 
    function clearMap(){
        context.clearRect(0,0,500,250);
   }
   </script>
   <script type="text/javascript"> 
    
   var canvas=document.getElementById("myCanvas");


            var context=canvas.getContext("2d");
            for(var i=1;i<5;i++){
            context.strokeStyle="#FF00FF";
            context.strokeRect(0,0,50*i,25*i);
            }
   for(var i=1;i<15;i++){
            
            context.strokeStyle="blue";
            context.beginPath();
            context.arc(300,0,i*10,0,Math.PI*1/2,false);
            context.closePath();
            context.stroke();
            }
            
   </script> </br>
   <input name=""type="button" value="清除" onClick="clearMap();">
  </body>
</html>



相關推薦

html5學習筆記利用canvas繪製簡單圖形

一,認識canvas Canvas是html5新增的開發跨平臺動畫 遊戲的標準方案,能夠實現對圖形和視訊進行畫素級操作,這為web圖形和視訊處理打開了廣闊的空間。藉助canvas,使用者可以再web中繪製各種圖形。Canvas元素及隨其而來的程式設計介面canvas api

html5學習筆記canvas中平移,縮放,旋轉等影象變換問題

1,儲存與恢復問題 關鍵字:save / restore save指儲存save之前的canvas狀態,restore恢復save儲存的canvas狀態。舉個例子我想在canvas中隔一秒顯示一個圖片,那我可以先用save指令儲存空白的canvas,然後在顯示一張圖片之後r

SpringMVC學習筆記常用註解

title c學習 請求 pin 學習 lin att 詳解 stp 轉載請註明原文地址:http://www.cnblogs.com/ygj0930/p/6831976.html 一、用於定義類的註解:@Controller @Controller 用於標記在一個類上,

framework7學習筆記基礎知識

部分 cnblogs query 基礎 logs code 自己 $$ pan 一:DOM7 framework7有自己的 DOM7 - 一個集成了大部分常用DOM操作的高性能庫。它的用法和jQuery幾乎是一樣的,包括大部分常用的方法和jquery風格的鏈式調用。 在開發

Spring4學習筆記Bean相關

因此 code per cdata 通過 反射機制 特殊符號 cat too 一:Bean的配置形式 基於XML配置:在src目錄下創建 applicationContext.xml 文件,在其中進行配置。 基於註解配置:在創建bean類時,通過註解來

小程序學習筆記頁面文件詳解之 .json文件

fresh 小程序 整體 屬性 spa hit rbac style mdi 頁面配置文件—— pageName.json 每一個小程序頁面可以使用.json文件來對本頁面的窗口表現進行配置,頁面中配置項會覆蓋 app.json 的 window 中相同的配置

Docker學習筆記Docker的安裝

ros -h bionic docker customer tex 鏈接 space 版本 安裝環境:操作系統:Ubuntu 18.04 LTS,code name:bionic (#lsb_release -a)內核版本:4.15.0-29-generic(#uname

基於.NET的CAD次開發學習筆記AutoCAD .NET中的物件

1、CAD物件 一個CAD檔案(DWG檔案)即對應一個數據庫,資料庫中的所有組成部分,看的見(包括點、多段線、文字、圓等)和看不見(圖層、線型、顏色等)的都是物件,資料庫本身也是一個物件。 直線、圓弧、文字和標註等圖形物件都是物件。 線型與標註樣式等樣式設定都是物件。 圖層

分散式學習筆記從分散式一致性談到CAP理論、BASE理論

問題的提出 在電腦科學領域,分散式一致性是一個相當重要且被廣泛探索與論證問題,首先來看三種業務場景。 1、火車站售票 假如說我們的終端使用者是一位經常坐火車的旅行家,通常他是去車站的售票處購買車 票,然後拿著車票去檢票口,再坐上火車,開始一段美好的旅行----一切似乎都是那麼和諧。想象一

轉載InstallShield學習筆記元件配置

InstallShield學習筆記二:元件配置 這裡主要講的記錄的是配置檔案的細節。 1.Features配置 在 Installshield 中,可以在 Features 新增需要安裝元件大類,這裡需要注意的是: 在InstallSrcipt MSI ,預設DefaultFeatu

JavaScript 學習筆記基本知識

文章目錄 預備知識 JavaScript web 開發人員必須學習的 3 門語言中的一門: 如何編寫JavaScript? 如何執行JavaScript 使用 JavaScript的兩種方式 1. 指令碼是直

csdn學習筆記連結串列原型、do原型分析

設計連結串列,並設計其迭代函式 生成連結串列、列印連結串列 arr = {10, 20, 30, 100, 101, 88, 50}; head = nil; local i = 1 while true do if arr[i] then head = {va

python學習筆記列表

列表通過索引讀取資料: #索引讀取資料 a = [1,2,3] a[-1] 執行結果:3 列表支援巢狀: b = [[1,2,3],[4,5,6]] print(b) 執行結果:[[1, 2, 3], [4, 5, 6]] 列表可以修改: b = [[1,2,3],[4,5,

mapreduce學習筆記去重實驗

bound pac except 計算 throws 問題 多少 tasks tostring 實驗原理 “數據去重”主要是為了掌握和利用並行化思想來對數據進行有意義的篩選。統計大數據集上的數據種類個數、從網站日誌中計算訪問地等這些看似龐雜的任務都

python爬蟲學習筆記Requests庫詳解及HTTP協議

Requests庫的安裝:https://mp.csdn.net/postedit/83715574 r=requests.get(url,params=None,**kwargs) 這個r是Response物件 url :擬獲取頁面的url連結 params:url中的額外引數

快速傅立葉變換FFT的學習筆記深入實踐

快速傅立葉變換FFT的學習筆記二:深入實踐 快速傅立葉變換(Fast Fourier Transform)是離散傅立葉變換的一種快速演算法,簡稱FFT,通過FFT可以將一個訊號從時域變換到頻域。 資料結構 通過AD採集到一串時域上的資料點,一個int型的陣列

odoo10學習筆記繼承(擴充套件)、模組資料

一:繼承 在不改變底層物件的時候新增新的功能——這是通過繼承機制來實現的,作為在現有物件之上的修改層,這些修改可以發生在所有級別:模型,檢視和業務邏輯。不是直接修改現有模組,而是建立一個新模組以新增預期的修改。 1:擴充套件模型 Odoo 模型存在 Python 的模組之外, 在中間登錄檔那裡

odoo10學習筆記繼承(擴展)、模塊數據

標簽 添加 方便 before 表達 use lds extension 簽名 一:繼承 在不改變底層對象的時候添加新的功能——這是通過繼承機制來實現的,作為在現有對象之上的修改層,這些修改可以發生在所有級別:模型,視圖和業務邏輯。不是直接修改現有

Esper學習筆記程序模型

1.UpdateListener UpdaterListener是Esper提供的一個介面,用於監聽某個EPL在引擎中的執行情況,即事件進入併產生結果後會通知UpdateListener。 介面如下: package com.espertech.esper.client;

GuavaCache學習筆記Java四大引用型別回顧

前言 上一篇已經講了,如何自己實現一個LRU演算法。但是那種只是最基本的實現了LRU的剔除策略,並不能在生產中去使用。因為Guava Cache中使用的是SoftReference去做的value實現,所以有必要將Java的四種引用型別在複習一下。 備註:以下程式碼使用的JVM配置為: -Xmx128