3
A
回答
8
你肯定能。事實上,您可以使用任何可重複的東西填充任意形狀,即使您在Canvas中製作的形狀也是如此!
這裏的得到填充有畫布上中定義的「豌豆莢」的任意形狀的一個示例:http://jsfiddle.net/NdUcv/
這用一個簡單的棋盤圖案:http://jsfiddle.net/NdUcv/2/
即第二個使一個形狀補這個樣子:
創建通過使畫布,然後繪製圖案無論我要重複它:
var pattern = document.createElement('canvas');
pattern.width = 40;
pattern.height = 40;
var pctx = pattern.getContext('2d');
// Two green rects make a checkered square: two green, two transparent (white)
pctx.fillStyle = "rgb(188, 222, 178)";
pctx.fillRect(0,0,20,20);
pctx.fillRect(20,20,20,20);
然後在我的正常的畫布,我可以這樣做:
var pattern = ctx.createPattern(pattern, "repeat");
ctx.fillStyle = pattern;
並繪製填充該模式東西。
當然,它不一定是一個畫布路徑,您可以使用棋盤圖像(或任何類型的圖像),並使用畫布圖案填充一個形狀。
+0
+1,我看過的createPattern的第一個用法。 – ellisbben
+0
ooo,看起來像我想要的。謝謝一堆。現在就去檢查一下。 – sianabanana
1
我做了一個簡單的例子
<html>
<head>
<hea>
<body onload='xx()'>
<canvas id='mycanvas' width='256' height='256'>ops</canvas>
</body>
<script type='text/javascript'>
function xx(){
var canvas= document.getElementById('mycanvas');
ctx= canvas.getContext('2d');
for(var i=0;i<8;i++){
for(var j=0;j<8;j++){
if (ctx.fillStyle == '#000000')
ctx.fillStyle = 'blue';
else ctx.fillStyle = '#000000';
ctx.fillRect(32*j, 32*i, 32,32);
}
if (ctx.fillStyle == '#000000')
ctx.fillStyle = 'blue';
else ctx.fillStyle = '#000000';
}
}
相關問題
- 1. HTML5帆布 - 用隨機像素顏色填充形狀?
- 2. 透明顏色HTML5帆布
- 3. 試圖在畫布填充中填寫兩種不同顏色()
- 4. Html5帆布從一種顏色平滑過渡到另一種顏色
- 5. HTML5帆布:旋轉圖案填充
- 6. 問:HTML5帆布改變背景顏色
- 7. 從兩種佈局顏色
- 8. 畫布填充顏色,保持黑色
- 9. 帆布填充文本
- 10. 顏色和用帆布
- 11. 帆布背景顏色
- 12. SurfaceView +帆布,褪色從一種顏色到另一個
- 13. 用兩種不同的顏色填充文字
- 14. Clip CGPath並填充兩種不同的顏色
- 15. 如何使用兩種顏色填充JavaFX球體
- 16. HTML 5個畫布的填充顏色
- 17. 畫布矩形填充顏色
- 18. Android佈局中的填充顏色
- 19. 動態在畫布中填充顏色
- 20. HTML5畫布顏色
- 21. UIView填充顏色
- 22. Mathematica填充顏色
- 23. JAVA - 揮杆 - 平局/與反轉填充/否定目的地帆布的顏色
- 24. Javascript - 畫布 - 在previousley上填充透明png填充顏色
- 25. 否HTML5帆布
- 26. HTML5帆布Roullete
- 27. 畫布在兩條線之間填充顏色
- 28. HTML5帆布漸變顯示爲黑色
- 29. 兩種顏色的Android佈局背景
- 30. 畫布進度矩形兩種顏色
沒有什麼是真的,我不知道從哪裏開始或者是否有可能。 – sianabanana
「這個問題沒有顯示任何研究工作。」 – ellisbben
對不起,我一直在使用谷歌搜索,但它並不容易找到。 – sianabanana