回答
是的,這是可能的! Javascript中有一個方法,名爲createLinearGradient
,它獲取作爲canvas上下文的源並應用由sx
,sy
,dx
,dy
座標定義的梯度。前兩個選項定義起始座標,最後兩個選項定義結束座標。
var gradient = context.createLinearGradient(sx, sy, dx, dy);
調用此方法後,你可以通過調用colorStop
方法應用於漸變顏色,你的畫布:
gradient.addColorStop(0, '#f00'); // red
gradient.addColorStop(0.5, '#ff0'); // yellow
gradient.addColorStop(1, '#00f'); // blue
這些是在畫布上實施梯度基本成分。然後,如果需要圓形漸變,下一步將計算圓形顏色漸變位置。這可以通過以下公式滿足:
var applyAngle = function (point, angle, distance) {
return {
x : point.x + (Math.cos(angle) * distance),
y : point.y + (Math.sin(angle) * distance)
};
};
然後插件所得x
和y
位置進入createLinearGradient方法,該方法會產生一個很好看的圓形梯度。當然,您需要使用arc
方法使其成爲循環。
什麼是 '距離' 參數表示applyAngle功能? – Masterakos
代表半徑 –
優秀的答案:@SimoEndre你能發表一個實際的例子:你會如何繪製弧線? – taseenb
在這裏,你去。
var canvas = document.getElementById('circle');
var ctx = canvas.getContext('2d');
var x = 250,
y = 250,
radius = 200,
// 0deg - 1.5 * Pi,
// 90deg - 0 * Pi,
// 180deg - 0.5 * Pi,
// 270deg - 1 * Pi
angleStart = 1.5 * Math.PI,
angleEnd = 0.7 * Math.PI;
//Create gradient
var gradient = ctx.createLinearGradient(0,500,0, 0);
gradient.addColorStop(0, '#000');
gradient.addColorStop(1, '#40d6a5');
//Draw circle
ctx.beginPath();
ctx.arc(x, x, radius, 0, 2*Math.PI, false);
ctx.lineWidth = 30;
ctx.strokeStyle = 'rgba(255,255,255, 0.2)'
ctx.stroke();
//Draw arc
ctx.beginPath();
ctx.arc(x, y, radius, angleStart, angleEnd);
ctx.strokeStyle = gradient;
ctx.lineWidth = 30;
ctx.lineCap = 'round';
ctx.stroke();
不是我的代碼,我在下面的鏈接中找到它。
http://codepen.io/alsheuski/pen/eJNwNX
或者這一個
- 1. 繪製漸變色在弧圓邊
- 2. 在Quartz中繪製線性漸變並將其變成圓形
- 3. 繪製漸變圓
- 4. 在HTML5 Canvas上繪製拉伸弧
- 5. 繪製弧線cocos2d-html5
- 6. 製作漸變弧線?
- 7. R:製作分數計/漸變圓弧
- 8. 繪製一條弧線並將其漸變
- 9. 繪製橢圓漸變
- 10. 如何繪製沿弧的漸變
- 11. 畫布繪製用線性漸變填充圓角矩形
- 12. 在OpenGL中用線性漸變紋理繪製圓柱
- 13. 弧線,KineticJS繪製
- 14. html5 canvas將線條更改爲圓形
- 15. Android線性漸變可繪製
- 16. Android - 如何繪製基於漸變的弧線
- 17. Android:使用漸變填充顏色繪製弧線
- 18. 繪製透明圓弧
- 19. 在three.js中繪製圓弧
- 20. 圓弧正在繪製矩形
- 21. 用LibGDX繪製漸變線
- 22. 安卓繪製的圓弧與清掃弧線
- 23. 用Core Graphics繪製圓弧時繪製的額外線條
- 24. 繪製漸變
- 25. wx python繪製圓弧和圓
- 26. 在Android中繪製圓錐漸變
- 27. 如何繪製圓形漸變?
- 28. 在GDI中用線性漸變繪製線條漸變的折線+
- 29. Three.Js在webgl中繪製線性漸變紋理
- 30. Paint:如何使用漸變圖像或位圖圖像繪製圓弧
[你嘗試過什麼?](http://www.whathaveyoutried.com/) – Cerbrus