校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > HTML5 Canvas自定義圓角矩形與虛線示例代碼

HTML5 Canvas自定義圓角矩形與虛線示例代碼

熱門標簽:臨海地圖標注app 百度地圖標注為什么總是封號 小朱地圖標注 四川移動電銷外呼客戶管理系統 智能芯電話機器人 400開頭的電話好申請不 怎么做百度地圖標注 咸陽穩定外呼系統軟件 地圖標注柱狀圖
HTML5 Canvas自定義圓角矩形與虛線(RoundedRectangle and Dash Line)

實現向HTML Canvas 2d context繪制對象中添加自定義的函數功能演示,如何繪制虛線以及控制虛線間隔大小,學會繪制圓角矩形的技巧。

HTML5 Canvas繪制對象中提供的原生功能沒有實現繪制圓角矩形與虛線的功能,但是通過JavaScript語言的Object.prototype可以實現對對象CanvasRenderingContext2D添加這兩個函數功能。代碼的演示效果如下:
 
組件fishcomponent.js的代碼如下:

復制代碼
代碼如下:

CanvasRenderingContext2D.prototype.roundRect =
function(x, y, width, height, radius, fill, stroke) {
if (typeof stroke == "undefined") {
stroke = true;
}
if (typeof radius === "undefined") {
radius = 5;
}
this.beginPath();
this.moveTo(x + radius, y);
this.lineTo(x + width - radius, y);
this.quadraticCurveTo(x + width, y, x + width, y + radius);
this.lineTo(x + width, y + height - radius);
this.quadraticCurveTo(x + width, y + height, x + width - radius, y+ height);
this.lineTo(x + radius, y + height);
this.quadraticCurveTo(x, y + height, x, y + height - radius);
this.lineTo(x, y + radius);
this.quadraticCurveTo(x, y, x + radius, y);
this.closePath();
if (stroke) {
this.stroke();
}
if (fill) {
this.fill();
}
};
CanvasRenderingContext2D.prototype.dashedLineTo = function (fromX, fromY, toX, toY, pattern) {
// default interval distance -> 5px
if (typeof pattern === "undefined") {
pattern = 5;
}
// calculate the delta x and delta y
var dx = (toX - fromX);
var dy = (toY - fromY);
var distance = Math.floor(Math.sqrt(dx*dx + dy*dy));
var dashlineInteveral = (pattern <= 0) ? distance : (distance/pattern);
var deltay = (dy/distance) * pattern;
var deltax = (dx/distance) * pattern;
// draw dash line
this.beginPath();
for(var dl=0; dl<dashlineInteveral; dl++) {
if(dl%2) {
this.lineTo(fromX + dl*deltax, fromY + dl*deltay);
} else {
this.moveTo(fromX + dl*deltax, fromY + dl*deltay);
}
}
this.stroke();
};

HTML中調用演示:

復制代碼
代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="chrome=IE8">
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>Canvas Rounded Rectangle Demo</title>
<script src="fishcomponent.js"></script>
<link href="default.css" rel="stylesheet" />
<script>
var ctx = null; // global variable 2d context
var imageTexture = null;
window.onload = function() {
var canvas = document.getElementById("text_canvas");
console.log(canvas.parentNode.clientWidth);
canvas.width = canvas.parentNode.clientWidth;
canvas.height = canvas.parentNode.clientHeight;
if (!canvas.getContext) {
console.log("Canvas not supported. Please install a HTML5 compatible browser.");
return;
}
var context = canvas.getContext('2d');
context.strokeStyle="red";
context.fillStyle="RGBA(100,255,100, 0.5)";
context.roundRect(50, 50, 150, 150, 5, true);
context.strokeStyle="blue";
for(var i=0; i<10; i++) {
var delta = i*20;
var pattern = i*2+1;
context.dashedLineTo(250, 50+delta, 550, 50+delta, pattern);
}
}
</script>
</head>
<body>
<h1>HTML5 Canvas Dash-line Demo - By Gloomy Fish</h1>
<pre>Dash line and Rounded Rectangle</pre>
<div id="box_plot">
<canvas id="text_canvas"></canvas>
</div>
</body>
</html>

標簽:黃石 公主嶺 南平 平頂山 黃石 平涼 陜西 山南

巨人網絡通訊聲明:本文標題《HTML5 Canvas自定義圓角矩形與虛線示例代碼》,本文關鍵詞  HTML5,Canvas,自定義,圓角,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5 Canvas自定義圓角矩形與虛線示例代碼》相關的同類信息!
  • 本頁收集關于HTML5 Canvas自定義圓角矩形與虛線示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 贵阳市| 芦溪县| 谢通门县| 台州市| 桃源县| 友谊县| 锡林浩特市| 洛扎县| 团风县| 手机| 唐山市| 江阴市| 木里| 鄂托克前旗| 平原县| 岳池县| 盖州市| 庆安县| 清丰县| 革吉县| 安溪县| 资兴市| 武安市| 兴安县| 兴安盟| 新宾| 巧家县| 佛坪县| 临沂市| 崇仁县| 额尔古纳市| 宁波市| 五台县| 金川县| 安远县| 天等县| 迁西县| 合肥市| 东海县| 柘城县| 深泽县|