SVG如何绘制矩形

本文介绍了如何使用SVG中的rect元素绘制矩形,包括设置矩形的宽高、填充颜色、轮廓和圆角。通过示例代码展示了如何创建基本矩形、改变填充颜色以及绘制圆角矩形,并解释了相关属性的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本节我们来学习 SVG 中的矩形。SVG 中设有一些预定义的形状元素,我们可以直接通过这些元素来绘制图形。

基本图形有如下几种:

元素 图形
<rect> 矩形
<circle> 圆形
<ellipse> 椭圆
<line> 线
<polyline> 折线
<polygon> 多边形
<path> 路径

直接在 <svg> 元素内使用上述图形元素,就可以轻松绘制出图形啦,本节我们先来讲如何使用 <rect> 元素绘制矩形。

绘制一个矩形

SVG 中的 <rect> 标签可用来创建矩形,通过这个元素中的属性可以设置矩形的宽高、填充颜色、轮廓、尖角、圆角等。

示例:

例如我们绘制一个最基本的矩形,例如我们创建一个300 * 100 的矩形,代码如下所示:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>SVG学习(9xkd.com)</title>
        <link rel="styleSheet" type="text/css" href="./style.css">
    </head>
    <body>
        
### 使用 SVG 和 JavaScript 实现点击按钮绘制矩形 要通过点击按钮使用 SVG 绘制矩形,可以利用 HTML 的 `<svg>` 元素以及其子元素 `<rect>` 来完成。以下是具体方法: #### 创建基本结构 HTML 提供了一个容器用于放置 SVG 图像,并通过 JavaScript 动态创建和操作矩形对象。 ```html <button id="drawRectBtn">绘制矩形</button> <svg id="mySvg" width="500" height="300" style="border:1px solid black;"></svg> ``` 上述代码片段中定义了一个按钮 `#drawRectBtn` 用于触发绘图逻辑,同时提供了一个大小为 500×300 像素的 SVG 容器 `#mySvg`[^3]。 #### 编写 JavaScript 逻辑 当用户点击按钮时,JavaScript 将动态向 SVG 中添加一个新的 `<rect>` 元素表示矩形。 ```javascript document.getElementById('drawRectBtn').addEventListener('click', function() { const svgNS = "http://www.w3.org/2000/svg"; // 创建新的 rect 元素 let newRect = document.createElementNS(svgNS, 'rect'); // 设置属性 newRect.setAttribute('x', Math.random() * 400); // 随机位置 (x 方向) newRect.setAttribute('y', Math.random() * 250); // 随机位置 (y 方向) newRect.setAttribute('width', 50); // 矩形宽度 newRect.setAttribute('height', 30); // 矩形高度 newRect.setAttribute('fill', 'blue'); // 填充颜色 // 添加到 SVG 容器 document.getElementById('mySvg').appendChild(newRect); }); ``` 此脚本实现了每次点击按钮都会随机生成一个小蓝矩形并附加至指定的 SVG 容器内[^4]。 #### 关键技术点解析 - **SVG Namespace**: 所有 SVG 元素都需声明命名空间 `"http://www.w3.org/2000/svg"`,这是标准规定的一部分。 - **setAttribute 方法**: 此方法用来设置新创建节点的各种属性值,如坐标 (`x`, `y`)、尺寸 (`width`, `height`) 及样式 (`fill`)。 - **Math.random 函数**: 这里被用来模拟不同位置上的矩形生成过程,实际应用可根据需求调整算法或固定数值[^5]。 ### 结论 以上展示了如何借助简单的 DOM 操作配合 SVG 技术实现基于交互行为(即按钮点击)下的图形渲染功能。这种方法不仅适用于基础形状绘制,还可以扩展支持更复杂的动画效果或者响应式设计模式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值