1,建立徑向漸變對象 createRadialGradient(x0,y0,r0,x1,y1,r1),其中x0,y0,r0分別爲起始圓的位置座標和半徑,x1,y1,r1爲終止圓的座標和半徑。javascript
2,設置漸變顏色 addColorStop(position,color),position爲從0.0~1.0之間的值,表示漸變的相對位置;color是一個有效的css顏色值。css
3,設置畫筆顏色爲該徑向漸變對象。html
4,畫圖。java
var c = document.getElementById('mycanvas').getContext('2d');
var radial = c.createRadialGradient(100,100,20,120,120,50); radial.addColorStop(0,'#EE84AA'); radial.addColorStop(0.9,'#FF0188'); // 顏色值 #FF0188 == rgba(255,1,136,1) radial.addColorStop(1,'rgba(255,1,136,0)'); c.fillStyle = radial; c.fillRect(0,0,500,500);
效果圖以下,這個立體的球形。面試
var c = document.getElementById('mycanvas').getContext('2d'); var radial = c.createRadialGradient(100,100,20,120,120,50); radial.addColorStop(0,'#EE84AA'); radial.addColorStop(0.9,'#FF0188'); radial.addColorStop(1,'rgba(255,1,136,0)'); c.fillStyle = radial; c.fillRect(0,0,500,500); //如下是添加的輔助線 c.arc(100,100,20,0,2*Math.PI); c.moveTo(170,120); c.arc(120,120,50,0,2*Math.PI); c.stroke();
效果圖: canvas
var radial = c.createRadialGradient(80,80,20,120,120,50); radial.addColorStop(0,'#EE84AA'); radial.addColorStop(0.9,'#FF0188'); radial.addColorStop(1,'rgba(255,1,136,0)'); c.fillStyle = radial; c.fillRect(0,0,500,500); //如下是添加的輔助線 c.arc(80,80,20,0,2*Math.PI); c.moveTo(170,120); c.arc(120,120,50,0,2*Math.PI); c.stroke();
效果圖:dom
var radial = c.createRadialGradient(100,100,20,130,130,50); radial.addColorStop(0,'#EE84AA'); radial.addColorStop(0.9,'#FF0188'); radial.addColorStop(1,'rgba(255,1,136,0)'); c.fillStyle = radial; c.fillRect(0,0,500,500); //如下是添加的輔助線 c.arc(100,100,20,0,2*Math.PI); c.moveTo(180,130); c.arc(130,130,50,0,2*Math.PI); c.stroke();
效果圖:3d
var radial = c.createRadialGradient(70,70,20,130,130,50); radial.addColorStop(0,'#EE84AA'); radial.addColorStop(0.9,'#FF0188'); radial.addColorStop(1,'rgba(255,1,136,0)'); c.fillStyle = radial; c.fillRect(0,0,500,500); //如下是添加的輔助線 c.arc(70,70,20,0,2*Math.PI); c.moveTo(180,130); c.arc(130,130,50,0,2*Math.PI); c.stroke();
效果圖,so cute~htm
解第一題過程當中爲了不這個問題的干擾,設置了大大的着色區域c.fillRect(0,0,500,500); 對象
var radial = c.createRadialGradient(100,100,20,120,120,50); radial.addColorStop(0,'#EE84AA'); radial.addColorStop(0.9,'#FF0188'); radial.addColorStop(1,'rgba(255,1,136,0)'); c.fillStyle = radial; c.arc(80,100,60,0,2*Math.PI); c.fill(); //如下是添加的輔助線 c.moveTo(170,120); c.arc(120,120,50,0,2*Math.PI); c.stroke();
輔助線效果圖:
上面較大的圓爲繪製區域,下面小點的是徑向漸變圓。着色區域是兩個圓相交的部分。
相關參考地址: