canvas畫直角座標系
2017年3月17日
利用canvas畫直角座標係其實挺簡單的,只要確定了原點(0, 0)點,也可以是其他的點,只要自己知道那是原點就好!知道了原點再分別向X軸方向和Y軸方向畫兩條直線即可(X軸和Y軸也是相對的,這個純看個人喜好和實際需求)。
閒話不多說直接看程式碼:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>canvas画直角坐标系和柱状图</title> </head> <body> <h1 id="canvas画直角坐标系及柱状图">canvas画直角坐标系及柱状图</h1> <canvas id="canvas" width="600" height="400">如果您只看到了这句话,那么您的浏览器该升级换代了!</canvas> <!--canvas的宽高即可以设置成行内样式,也可以通过Js设置,不过建议设置成行内样式--> <script src="js/drawChart.js" type="text/javascript" charset="utf-8"></script> <!--为了表现与样式分离同时为了页面简洁,引入一个外部js文件--> <script type="text/javascript"> var canvas=document.getElementById("canvas"); var cxt = canvas.getContext("2d"); //通过id获取canvas画布,并获得cxt画笔,canvas目前只支持2d效果,所以“2d”不能省; var arr = [16,15,20,21]//利用数组模拟柱状图的数据 Coordinate(50,350);//自己写的一个直角坐标系 ColumnChart1(50,350,arr); //一个简单的柱状图函数 /*为了有个简单的动画效果,canvas绘制完成以后先将它隐藏,然后用jQuery的slideDown()方法淡入显示*/ $("#canvas").hide(); $("#canvas").slideDown(1000); </script> </body> </html>
然後就是直角座標系的繪製方法(如果那位大神看到了功能更加完善,程式碼量可以更加精簡的,請不賜教,謝謝):
function Coordinate(x,y){ //x为横坐标起点,Y为纵坐标起点 var originX = x; var originY = y; //设置原点的那个文字的样式,并绘制出来 cxt.font = "2rem 微软雅黑"; cxt.fillText("0",originX-10,originY+15);//此处-10和+15是为了调整字的位置 cxt.strokeStyle = "black";//设置坐标系X轴Y轴的颜色,绘制线条用strockeStyle属性,绘制填充色块用fillStyle属性; cxt.lineWidth = 3;//设置线条粗细,这里为了方便看设置了3个像素,可以根据情况自行调整 //开始绘制Y轴 cxt.beginPath();//开启路径 cxt.moveTo(originX,originY);//x轴与y轴的起点位置 cxt.lineTo(originX,originY-320);//轴的终点位置,即X大小不变,只是改变了Y点位置(根据实际情况做调整); cxt.stroke();//将这条线绘制出来 //画小箭头 cxt.moveTo(originX,originY-320);//小箭头起点位置即为Y轴终点位置 cxt.lineTo(originX+3,originY-310);//originX+3和originY-310是设置小箭头的终点位置,小箭头的大小和尖锐程度请自行摸索 cxt.stroke(); cxt.moveTo(originX,originY-320); cxt.lineTo(originX-3,originY-310); cxt.stroke(); //画横坐标 //绘制X轴和Y轴相似 cxt.moveTo(originX,originY); cxt.lineTo(originX+450,originY); cxt.stroke(); //画小箭头 cxt.moveTo(originX+450,originY); cxt.lineTo(originX+440,originY-3); cxt.stroke(); cxt.moveTo(originX+450,originY); cxt.lineTo(originX+440,originY+3); cxt.stroke(); cxt.fillText("Y轴",originX-5,originY-325) }
然後就是柱狀圖的繪製方法:
function ColumnChart1(x,y,arr){ //绘制之前先清空原有的柱状图所占区域 cxt.clearRect(x,y,500,0); var arrColor = ["red","yellow","blue","purple","green","mauve"];//为了使每个柱子的颜色不一样,如果可以尽量用#******或rgb()方法设置颜色,因为我这样直接用单词有些浏览器对个别颜色不识别(头疼的IE) //请务必保持x,y值与坐标系的x,y值相同 this.arr= arr; for (var i=0;i<arr.length;i++ ) {//for循环用来遍历数组内数据 if(i==0){ var originX = x+40; var originY = y-1; }else{ var originX = i*70+80; var originY = y-1; } cxt.beginPath(); cxt.strokeStyle = arrColor[i];//设置线条颜色 cxt.lineWidth = 20;//这里为了方便直接将线条的宽度设置为20,这样就可以模拟柱子 cxt.moveTo(originX+(i+1)*20,originY);//柱子的顶点位置,这里因为数组内数字小,所以都乘十了,这样有利于小数字的表现 cxt.lineTo(originX+(i+1)*20,originY-(arr[i]*10));//调整每根柱子的间距; cxt.stroke(); cxt.font = "20px 宋体" cxt.fillText(arr[i],originX+(i+1)*20-10,originY-(arr[i]*10+3)); //文字的绘制 cxt.font = "13px 宋体" cxt.fillText("第"+(i+1)+"季度业绩",originX+(i+1)*20-35,originY+20) } }
如果還想圖表看起來更加美觀,可以用canvas提供的shadowColor、shadowOffsetX、shadowOffsetY等相關屬性設定陰影。
同時以柱子的頂點為圓心畫一個顏色略異於柱子的橢圓即可。
以上是canvas畫直角座標系的詳細內容。更多資訊請關注PHP中文網其他相關文章!

HTML中的H5標籤是第五級標題,用於標記較小的標題或子標題。 1)H5標籤幫助細化內容層次,提升可讀性和SEO。 2)結合CSS可定製樣式,增強視覺效果。 3)合理使用H5標籤,避免濫用,確保內容結構邏輯性。

HTML5構建網站的方法包括:1.使用語義化標籤定義網頁結構,如、、等;2.嵌入多媒體內容,使用和標籤;3.應用表單驗證和本地存儲等高級功能。通過這些步驟,你可以創建一個結構清晰、功能豐富的現代網頁。

通過合理的H5代碼結構可以讓頁面在眾多內容中脫穎而出。 1)使用語義化標籤如、、等組織內容,使結構清晰。 2)通過CSS佈局如Flexbox或Grid控制頁面在不同設備上的呈現效果。 3)實現響應式設計,確保頁面在不同屏幕尺寸上自適應。

HTML5(H5)與舊版本HTML的主要區別包括:1)H5引入了語義化標籤,2)支持多媒體內容,3)提供離線存儲功能。 H5通過新標籤和API增強了網頁的功能和表現力,如和標籤,提高了用戶體驗和SEO效果,但需注意兼容性問題。

H5和HTML5的區別在於:1)HTML5是網頁標準,定義結構和內容;2)H5是基於HTML5的移動網頁應用,適用於快速開發和營銷。

HTML5的核心特性包括語義化標籤、多媒體支持、表單增強和離線存儲與本地存儲。 1.語義化標籤如、等提高了代碼可讀性和SEO效果。 2.多媒體支持通過和標籤簡化了嵌入媒體內容的過程。 3.表單增強引入了新的輸入類型和驗證屬性,簡化了表單開發。 4.離線存儲和本地存儲通過ApplicationCache和localStorage等提高了網頁性能和用戶體驗。

html5isamajorrevisionofthehtmlStandardThatRevolutionsWebDevelopmentBybyIntroDucingNewSemanticeLementSemelementsandAndCapabilities.1)itenhancesCodereAdabilityAndSeowitability andSeowithelientsLike,and.2)

H5的高級技巧包括:1.利用進行複雜圖形繪製,2.使用WebWorkers提升性能,3.通過WebStorage增強用戶體驗,4.實現響應式設計,5.利用WebRTC實現實時通信,6.進行性能優化和最佳實踐。這些技巧幫助開發者構建更動態、互動和高效的Web應用。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver CS6
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。