D3基础:绘制圆形、椭圆形、多边形、线、路径、矩形

在D3.js中,可以通过SVG元素来创建各种几何图形。以下是D3.js中常用的几何图形及其简单的创建方法:

在这里插入图片描述

1. 圆形 (Circle)

圆形是最基本的形状之一,可以通过<circle>标签来创建。

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><script src="https://d3js.org/d3.v6.min.js"></script>
</head>
<body><svg width="200" height="200"></svg><script>const svg = d3.select("svg");svg.append("circle").attr("cx", 100) // 圆心的X坐标.attr("cy", 100) // 圆心的Y坐标.attr("r", 50)   // 半径.attr("fill", "blue"); // 颜色</script>
</body>
</html>

2. 椭圆 (Ellipse)

椭圆通过<ellipse>标签来创建,它允许设置不同的宽度和高度。

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><script src="https://d3js.org/d3.v6.min.js"></script>
</head>
<body><svg width="200" height="200"></svg><script>const svg = d3.select("svg");svg.append("ellipse").attr("cx", 100) // 中心点的X坐标.attr("cy", 100) // 中心点的Y坐标.attr("rx", 80)  // 水平半径.attr("ry", 50)  // 垂直半径.attr("fill", "green"); // 颜色</script>
</body>
</html>

3. 矩形 (Rectangle)

矩形使用<rect>标签来创建,可以通过设置widthheight属性来调整其大小。

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><script src="https://d3js.org/d3.v6.min.js"></script>
</head>
<body><svg width="200" height="200"></svg><script>const svg = d3.select("svg");svg.append("rect").attr("x", 50)   // 左上角的X坐标.attr("y", 50)   // 左上角的Y坐标.attr("width", 100) // 宽度.attr("height", 100) // 高度.attr("fill", "red"); // 颜色</script>
</body>
</html>

4. 线 (Line)

线可以通过<line>标签来定义,需要指定起始点和结束点的坐标。

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><script src="https://d3js.org/d3.v6.min.js"></script>
</head>
<body><svg width="200" height="200"></svg><script>const svg = d3.select("svg");svg.append("line").attr("x1", 50)  // 起始点X坐标.attr("y1", 50)  // 起始点Y坐标.attr("x2", 150) // 结束点X坐标.attr("y2", 150) // 结束点Y坐标.attr("stroke", "black") // 颜色.attr("stroke-width", 2); // 线宽</script>
</body>
</html>

5. 多边形 (Polygon)

多边形可以通过<polygon>标签来创建,需要提供一系列的顶点坐标。

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><script src="https://d3js.org/d3.v6.min.js"></script>
</head>
<body><svg width="200" height="200"></svg><script>const svg = d3.select("svg");const points = "50,150 100,50 150,150"; // 三角形的三个顶点svg.append("polygon").attr("points", points).attr("fill", "purple"); // 颜色</script>
</body>
</html>

在这里插入图片描述

6. 路径 (Path)

路径是最灵活的图形之一,可以通过<path>标签和d属性来定义复杂的形状。

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><script src="https://d3js.org/d3.v6.min.js"></script>
</head>
<body><svg width="200" height="200"></svg><script>const svg = d3.select("svg");const pathData = "M10,10 H90 V90 H10 Z"; // 定义一个正方形svg.append("path").attr("d", pathData).attr("fill", "orange"); // 颜色</script>
</body>
</html>

以上示例展示了如何使用D3.js结合SVG来创建基本的几何图形。这些基础图形可以组合起来创建更复杂的视觉效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/61150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端监控之sourcemap精准定位和还原错误源码

一、概述 在前端开发中&#xff0c;监控和错误追踪是确保应用稳定性和用户体验的重要环节。 随着前端应用的复杂性增加&#xff0c;JavaScript错误监控变得尤为重要。在生产环境中&#xff0c;为了优化加载速度和性能&#xff0c;前端代码通常会被压缩和混淆。这虽然提升了性…

MySQL的表的约束以及查询

本篇文章继续给大家梳理MySQL的操作 目录 表的约束 空属性 默认值 列描述 0填充 主键 主键常识 添加主键 删除主键 复合主键 自增长 唯一键 外键 单/多行输入与全/指定列的插入 全列输入 单行输入 多行插入 指定列插入 单行输入 多行插入 插入否则更新 替换…

MySQL 日志 主从复制

1. 日志 学习链接&#xff0c;click mysql中有4种日志&#xff1a; 错误日志二进制日志查询日志慢查询日志 1.1 错误日志 错误日志是MySQL中最重要的日志之一&#xff0c;它记录了当mysqld启动和停止时&#xff0c;以及服务器在运行过程中发生任何严重错误时的相关信息。当…

自动驾驶系列—深入解析自动驾驶车联网技术及其应用场景

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

基于YOLOv8深度学习的公共卫生防护口罩佩戴检测系统(PyQt5界面+数据集+训练代码)

在全球公共卫生事件频发的背景下&#xff0c;防护口罩佩戴检测成为保障公众健康和控制病毒传播的重要手段之一。特别是在人员密集的公共场所&#xff0c;例如医院、学校、公共交通工具等地&#xff0c;口罩的正确佩戴对降低病毒传播风险、保护易感人群、遏制疫情扩散有着至关重…

vue使用List.reduce实现统计

需要对集合的某些元素的值进行计算时&#xff0c;可以在计算属性中使用forEach方法 1.语法&#xff1a;集合.reduce ( ( 定义阶段性累加后的结果 , 定义遍历的每一项 ) > 定义每一项求和逻辑执行后的返回结果 , 定义起始值 ) 2、简单使用场景&#xff1a;例如下面…

Ubuntu24.04安装和配置Redis7.4

Ubuntu24.04安装和配置Redis7.4 #切换到root用户 sudo su -#更新源 apt update apt upgrade#安装 lsb-release、curl 和 gpg &#xff0c;以便能够添加 Redis 仓库 apt install lsb-release curl gpg#导入 Redis 的 GPG 密钥 curl -fsSL https://packages.redis.io/gpg | gpg …

【Linux】进程的优先级

进程的优先级 一.概念二.修改优先级的方法三.进程切换的大致原理&#xff1a;四.上下文数据的保存位置&#xff1a; 一.概念 cpu资源分配的先后顺序&#xff0c;就是指进程的优先权&#xff08;priority&#xff09;。 优先权高的进程有优先执行权利。配置进程优先权对多任务环…

ESLint 使用教程(七):ESLint还能校验JSON文件内容?

系列文章 ESLint 使用教程&#xff08;一&#xff09;&#xff1a;从零配置 ESLint ESLint 使用教程&#xff08;二&#xff09;&#xff1a;一步步教你编写 Eslint 自定义规则 ESLint 使用教程&#xff08;三&#xff09;&#xff1a;12个ESLint 配置项功能与使用方式详解 ES…

【软件工程】一篇入门UML建模图(类图)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;软件开发必练内功_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前…

uniapp 跨域前端代理

manifest.json里找到H5&#xff0c;添加下面代码 请求封装里直接 url ‘/test’ 就可以 "devServer" : {"https" : false,"port" : 8080,"proxy" : {"/test" : {"target" : "http://192.168.5.20:8080&qu…

AWTK-WIDGET-WEB-VIEW 实现笔记 (3) - MacOS

MacOS 上实现 AWTK-WIDGET-WEB-VIEW 有点麻烦&#xff0c;主要原因是没有一个简单的办法将一个 WebView 嵌入到一个窗口中。所以&#xff0c;我们只能通过创建一个独立的窗口来实现。 1. 创建窗口 我对 Object-C 不熟悉&#xff0c;也不熟悉 Cocoa 框架&#xff0c;在 ChatGPT…

QT仿QQ聊天项目,第三节,实现聊天界面

一&#xff0c;界面控件示意图 界面主要由按钮QPushButton,标签QLabel,列表QListWidget 要注意的是QListWidget既是实现好友列表的控件&#xff0c;也是实现聊天气泡的控件 二&#xff0c;控件样式 QPushButton#btn_name {border:none;}QPushButton#btn_close {border:1px;bac…

微信小程序自定义顶部导航栏(适配各种机型)

效果图 1.pages.js&#xff0c;需要自定义导航栏的页面设置"navigationStyle": "custom" 2.App.vue,获取设备高度及胶囊位置 onLaunch: function () {// 系统信息const systemInfo uni.getSystemInfoSync()// 胶囊按钮位置信息const menuButtonInfo uni.…

7、硬盘品牌分类介绍:海力士 - 计算机硬件品牌系列文章

海力士&#xff0c;‌全称为SK海力士&#xff0c;‌是一家总部位于韩国的全球顶级半导体供应商&#xff0c;‌专注于动态随机存取存储器(‌DRAM)‌、‌NAND快闪存储器(‌NAND Flash)‌及CMOS图像传感器(‌CIS)‌等产品的研发、‌生产和销售。‌作为韩国第三大财阀SK集团旗下的子…

Android Studio开发学习(五)———LinearLayout(线性布局)

一、布局 认识了解一下Android中的布局&#xff0c;分别是: LinearLayout(线性布局)&#xff0c;RelativeLayout(相对布局)&#xff0c;TableLayout(表格布局)&#xff0c; FrameLayout(帧布局)&#xff0c;AbsoluteLayout(绝对布局)&#xff0c;GridLayout(网格布局) 等。 二、…

C++:哈希拓展-位图

目录 一.问题导入 二.什么是位图? 2.1如何确定目标数在哪个比特位? 2.2如何存放高低位 2.3位图模拟代码实现 2.3.1如何标记一个数 2.3.2如何重置标记 2.3.3如何检查一个数是否被标记 整体代码实现 标准库的Bitset 库中的bitset的缺陷 简单应用 一.问题导入 这道…

[AI] 如何让计算机具备核心直觉知识:从常识推理到具身智能

随着人工智能(AI)技术的发展,如何让计算机具备核心的“直觉知识”成为重要的研究课题之一。十多年来,AI研究者们持续探索如何使机器不仅能处理大量数据,还能像人类一样理解和推理日常常识。认知科学家雷纳特提出,赋予机器常识将是推动AI进步的关键,因此他致力于建立一个…

C++中的 std::optional

std::optional<T>是 C17 中的一个标准库组件&#xff0c;optional <T>对象默认是空的&#xff0c;也就是处于无效状态&#xff0c;给它赋值后因为里面有了元素&#xff0c;就变成了有效状态。 1.引入背景 c函数常用返回值表示函数是否执行成功。如返回nullptr表示…

实用教程:如何无损修改MP4视频时长

如何在UltraEdit中搜索MP4文件中的“mvhd”关键字 引言 在视频编辑和分析领域&#xff0c;有时我们需要深入到视频文件的底层结构中去。UltraEdit&#xff08;UE&#xff09;和UEStudio作为强大的文本编辑器&#xff0c;允许我们以十六进制模式打开和搜索MP4文件。本文将指导…