菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

HTML Canvas 径向渐变


createRadialGradient() 方法

createRadialGradient() 方法用于定义一个径向/圆形渐变。

径向渐变由两个假想圆定义:一个起始圆和一个结束圆。渐变从起始圆开始,向结束圆移动。

createRadialGradient() 方法具有以下参数:

参数 描述
x0 必需。起始圆的 x 坐标
y0 必需。起始圆的 y 坐标
r0 必需。起始圆的半径
x1 必需。结束圆的 x 坐标
y1 必需。结束圆的 y 坐标
r1 必需。结束圆的半径

渐变对象需要两个或更多颜色停止点。

addColorStop() 方法指定颜色停止点及其在渐变中的位置。位置可以在 0 和 1 之间。

要使用渐变,请将其分配给 fillStylestrokeStyle 属性,然后绘制形状(矩形、圆形、形状或文本)。

示例

使用两个颜色停止点创建径向/圆形渐变;起始圆为浅蓝色,结束圆为深蓝色。起始圆的中心位于 (150,75) 位置,半径为 15 像素。结束圆的中心位于 (150,75) 位置,半径为 150 像素。然后,用渐变填充矩形。

您的浏览器不支持 HTML5 canvas 标签。
<script>
const c = document.getElementById("myCanvas");
const ctx = c.getContext("2d");

// 创建渐变
const grad=ctx.createRadialGradient(150,75,15,150,75,150);
grad.addColorStop(0,"lightblue");
grad.addColorStop(1,"darkblue");

// 用渐变填充矩形
ctx.fillStyle = grad;
ctx.fillRect(10,10,280,130);
</script>
自己动手试一试 »


示例

在这里,我们将结束圆的半径设置为一个较小的数字 (100),可以看到径向/圆形渐变会变小。

您的浏览器不支持 HTML5 canvas 标签。
<script>
const c = document.getElementById("myCanvas");
const ctx = c.getContext("2d");

// 创建渐变
const grad=ctx.createRadialGradient(150,75,15,150,75,100);
grad.addColorStop(0,"lightblue");
grad.addColorStop(1,"darkblue");

// 用渐变填充矩形
ctx.fillStyle = grad;
ctx.fillRect(10,10,280,130);
</script>
自己动手试一试 »

示例

在这里,我们移动结束圆的中心点以获得新的外观。

您的浏览器不支持 HTML5 canvas 标签。
<script>
const c = document.getElementById("myCanvas");
const ctx = c.getContext("2d");

// 创建渐变
const grad=ctx.createRadialGradient(150,75,15,180,95,100);
grad.addColorStop(0,"lightblue");
grad.addColorStop(1,"darkblue");

// 用渐变填充矩形
ctx.fillStyle = grad;
ctx.fillRect(10,10,280,130);
</script>
自己动手试一试 »

示例

在这里,我们向渐变添加一个额外的颜色停止点以获得新的外观。

您的浏览器不支持 HTML5 canvas 标签。
<script>
const c = document.getElementById("myCanvas");
const ctx = c.getContext("2d");

// 创建渐变
const grad=ctx.createRadialGradient(150,75,15,150,75,150);
grad.addColorStop(0,"lightblue");
grad.addColorStop(0.3,"pink");
grad.addColorStop(1,"darkblue");

// 用渐变填充矩形
ctx.fillStyle = grad;
ctx.fillRect(10,10,280,130);
</script>
自己动手试一试 »

×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持