【HTML5】Canvas-------HTML5與OC繪制的簡單對比&&HTML5簡單繪制

HTML5里最讓我沉醉的淋肾,也是最吸引人注意的就是Canvas和JavaScript邀桑,這兩者的結(jié)合善玫,更是讓我感到“代碼也可以變得如此迷人”可霎。


HTML5與OC繪制的簡單對比

實(shí)際上OC和HTML5在圖形繪制上很像魄鸦。

在OC語言中

CGContent cont = UIGraphicsGetCurrentContext(); 獲取畫布
CGPointMake 制造坐標(biāo)點(diǎn)
CGContextAddLines(context, aPoint, int) 添加線段
CGContextDrawPath 開始繪制
CGContextSetStrokeColorWithColor 線框顏色

在HTML5中

var canvas_one = document.getElementById(id); 獲取畫布
moveTo 制造坐標(biāo)點(diǎn)
lineTo 制造其他坐標(biāo)癣朗,連接成線(類似于OC的添加線段)
content.stroke() 開始繪制
content.strokeStyle 線框顏色

OC和HTML5圖形的繪制上面都大同小異拾因,他們彼此之間都有繪制線段、線條旷余、矩形绢记、圓形、扇形荣暮、曲線、圖形填充罩驻、漸變填充穗酥。

PS:對比未完,本人只抽取了基礎(chǔ)繪制進(jìn)行講解

HTML5簡單繪制

1、建構(gòu)一個畫布 <canvas></canvas>
2砾跃、設(shè)置繪制內(nèi)容
3骏啰、調(diào)用繪制于現(xiàn)實(shí)

線段的繪制
function drawStangel() {  
  //畫一條 
   var canvas_one = document.getElementById("canvasone"); 
   if (canvas_one.getContext) {     
   var content = canvas_one.getContext("2d");    
    //至關(guān)重要,參數(shù)必須寫2d抽高,表示要做平面繪圖  
  }  
 content.beginPath(); 
 content.moveTo(5,5);//起點(diǎn)  
 content.lineTo(200,10);//終點(diǎn)坐標(biāo) 
 content.lineWidth = 5.0;//線框度  
 content.strokeStyle = '#CC0000';//線顏色    
 content.stroke();
}
drawStangel();
以上代碼完成的畫線.png

繪制內(nèi)容步驟

1.獲取畫布
2.告訴計(jì)算機(jī)我要進(jìn)行平面繪制
3.準(zhǔn)備繪制
4.建構(gòu)繪制點(diǎn)及其屬性
5.開始繪制

貝塞爾曲線的繪制
function Beisizer() { 
   var beisizer = document.getElementById("canvasone"); 
   if (beisizer == null){    
    return false;   
 }  
  var ContenofBeisizer = beisizer.getContext("2d");  
  ContenofBeisizer.moveTo(50,50); 
  ContenofBeisizer.bezierCurveTo(50 , 50 , 150, 50, 150, 150);    
  ContenofBeisizer.stroke(); 
  ContenofBeisizer.quadraticCurveTo(150, 250, 250, 250); 
   //這里第二個參數(shù)很重要賦值判耕!=150    
ContenofBeisizer.stroke();
}
Beisizer();

曲線繪制.png

PS:(貝塞爾曲線內(nèi)容豐富,可以單獨(dú)研究一下它翘骂,所有的貝塞爾繪制都是如出一轍的壁熄,掌握了貝塞爾曲線的真理,在其他編程語言里對于繪圖也會獲益匪淺的)
推薦閱讀碳竟,貝塞爾曲線的繪制詳解

//OC的貝塞爾曲線繪制
 //二次曲線  
    CGContextMoveToPoint(context, 120, 300);//設(shè)置Path的起點(diǎn)  
    CGContextAddQuadCurveToPoint(context,190, 310, 120, 390);//設(shè)置貝塞爾曲線的控制點(diǎn)坐標(biāo)和終點(diǎn)坐標(biāo)  
    CGContextStrokePath(context);  
    //三次曲線函數(shù)  
    CGContextMoveToPoint(context, 200, 300);//設(shè)置Path的起點(diǎn)  
    CGContextAddCurveToPoint(context,250, 280, 250, 400, 280, 300);//設(shè)置貝塞爾曲線的控制點(diǎn)坐標(biāo)和控制點(diǎn)坐標(biāo)終點(diǎn)坐標(biāo)  
    CGContextStrokePath(context);  

HTML5和OC的貝塞爾曲線繪制是不是有特別像啊草丧,他們的步驟都差不多一致。

陰影圖形的繪制
function shadow() { 
   var shadow = document.getElementById("canvastwo");  
  if (shadow == null){    
    return false; 
   } 
   var contentShadow = shadow.getContext("2d");    
   contentShadow.shadowOffsetX = 20;  //陰影偏移x軸
   contentShadow.shadowOffsetY = 15; //陰影偏移y軸
   contentShadow.shadowBlur = 10; //陰影模糊程度
   contentShadow.shadowColor = '#CFCFCF';  //陰影顏色
    //下面是設(shè)置canvastwo的屬性
    contentShadow.fillStyle = '#FFAEB9';   //canvas圖形填充顏色
    contentShadow.fillRect(5,5,200,150);  //canvas圖形建構(gòu)
}
shadow();
陰影效果圖.png

對于陰影圖形的繪制與OC比較起來莹桅,HTML5是較為容易理解的昌执。

文章內(nèi)容不難,本人開發(fā)iOS有些時間了诈泼,結(jié)合HTML5理解了一下簡單繪制懂拾,如有不正確的地方可以一起來探討。OC與HTML5的結(jié)合理解铐达,望能夠幫助更多的人理解圖形繪制岖赋。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市娶桦,隨后出現(xiàn)的幾起案子贾节,更是在濱河造成了極大的恐慌,老刑警劉巖衷畦,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件栗涂,死亡現(xiàn)場離奇詭異,居然都是意外死亡祈争,警方通過查閱死者的電腦和手機(jī)斤程,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來菩混,“玉大人忿墅,你說我怎么就攤上這事【谙浚” “怎么了疚脐?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長邢疙。 經(jīng)常有香客問我棍弄,道長望薄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任呼畸,我火速辦了婚禮痕支,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛮原。我一直安慰自己卧须,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布儒陨。 她就那樣靜靜地躺著花嘶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪框全。 梳的紋絲不亂的頭發(fā)上察绷,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機(jī)與錄音津辩,去河邊找鬼拆撼。 笑死,一個胖子當(dāng)著我的面吹牛喘沿,可吹牛的內(nèi)容都是我干的闸度。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼蚜印,長吁一口氣:“原來是場噩夢啊……” “哼莺禁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起窄赋,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤哟冬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后忆绰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浩峡,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年错敢,在試婚紗的時候發(fā)現(xiàn)自己被綠了翰灾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡稚茅,死狀恐怖纸淮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情亚享,我是刑警寧澤咽块,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站欺税,受9級特大地震影響侈沪,放射性物質(zhì)發(fā)生泄漏飒货。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一峭竣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晃虫,春花似錦皆撩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至荆责,卻和暖如春滥比,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背做院。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工盲泛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人键耕。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓寺滚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親屈雄。 傳聞我的和親對象是個殘疾皇子村视,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 一:canvas簡介 1.1什么是canvas? ①:canvas是HTML5提供的一種新標(biāo)簽 ②:HTML5 ...
    GreenHand1閱讀 4,674評論 2 32
  • 書中代碼示例效果展示:Core HTML5 Canvas Examples 基礎(chǔ)知識 canvas元素 canva...
    szu_bee閱讀 2,810評論 2 28
  • 一酒奶、canvas簡介 1.1 什么是canvas蚁孔?(了解) 是HTML5提供的一種新標(biāo)簽 Canvas是一個矩形區(qū)...
    Looog閱讀 3,940評論 3 40
  • --繪圖與濾鏡全面解析 概述 在iOS中可以很容易的開發(fā)出絢麗的界面效果,一方面得益于成功系統(tǒng)的設(shè)計(jì)惋嚎,另一方面得益...
    韓七夏閱讀 2,717評論 2 10
  • 我每天都送孩子去幼兒園杠氢,其實(shí)這件事情在孩子的爺爺奶奶接下“交接棒”的時候,曾想過“偷懶”瘸彤。在家里吃完早餐直接上班修然,...
    茉莉大大閱讀 197評論 0 1