news 2026/4/18 7:08:04

CeTZ绘图库终极教程:从零开始掌握科学绘图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CeTZ绘图库终极教程:从零开始掌握科学绘图

CeTZ绘图库终极教程:从零开始掌握科学绘图

【免费下载链接】cetzCeTZ: ein Typst Zeichenpaket - A library for drawing stuff with Typst.项目地址: https://gitcode.com/gh_mirrors/ce/cetz

CeTZ(CeTZ, ein Typst Zeichenpaket)是一个专为Typst设计的绘图库,它借鉴了TikZ和Processing的设计理念,为科学绘图和学术可视化提供了强大而灵活的工具。无论你是需要绘制化学结构、数学图表,还是创建复杂的科学可视化,CeTZ都能帮助你轻松实现。

快速开始:你的第一个CeTZ绘图

想要立即开始使用CeTZ?只需要几行代码就能创建你的第一个绘图。首先在Typst文件中导入CeTZ库:

#import "@preview/cetz:0.4.2" #cetz.canvas({ import cetz.draw: * // 在这里添加你的绘图代码 })

这个简单的模板为你提供了完整的绘图环境。cetz.canvas函数负责处理所有的绘图逻辑和渲染过程,而import cetz.draw: *语句则引入了所有可用的绘图函数。

核心概念:理解坐标系统

CeTZ提供了多种坐标系统来满足不同的绘图需求。掌握这些坐标系统是成为CeTZ高手的关键一步。

笛卡尔坐标系统

最基础的坐标系统,使用(x, y)格式指定位置:

circle((0, 0)) // 在原点绘制圆形 line((0, 0), (2, 1)) // 从原点到(2,1)绘制直线

极坐标系统

当需要围绕中心点绘制图案时,极坐标系统非常有用:

line((0, 0), (angle: 30deg, radius: 1))

相对坐标系统

相对坐标让你能够基于前一个点的位置来定位新点,这在创建连续图案时特别方便:

circle((0, 0), stroke: blue) circle((rel: (1, 0)), stroke: red) // 红色圆形位于蓝色圆形右侧1单位

实战示例:创建树状结构图

让我们通过一个具体的例子来展示CeTZ的强大功能。树状结构在计算机科学和数学中非常常见,CeTZ能够轻松创建这样的可视化:

树状结构图的代码实现:

#cetz.canvas({ import cetz.draw: * // 绘制根节点 circle((0, 0), name: "root", radius: 0.2, fill: black) // 绘制子节点 circle((1, 1), name: "child1", radius: 0.2, fill: black) line("root", "child1") // 继续添加更多节点... })

高级功能:掌握图形变换

CeTZ提供了丰富的变换功能,包括旋转、缩放、平移等。这些变换让你能够创建动态和复杂的视觉效果:

// 旋转示例 group({ rotate(30deg) circle((0, 0), radius: 0.5) })

安装与配置

要在本地安装CeTZ包,你可以使用项目提供的安装脚本:

just install

安装完成后,你可以通过添加@local前缀来导入本地版本:

#import "@local/cetz:0.4.2"

实用技巧与最佳实践

1. 合理使用命名元素

为重要的图形元素命名,可以让你在后续的绘图中轻松引用它们的位置:

circle((0,0), name: "circle") content((name: "circle", anchor: 30deg), "30度位置")

2. 利用分组功能组织复杂图形

当创建复杂的多部分图形时,使用分组功能来保持代码的整洁:

group(name: "main", { circle((), name: "subcircle") })

3. 样式继承与复用

CeTZ支持样式继承,这意味着你可以定义一组样式规则,然后在整个绘图中复用它们。

项目生态与扩展

CeTZ拥有丰富的生态系统,包括多个专门用途的扩展库:

  • cetz-plot:专门用于绘制图表和数据可视化
  • cetz-venn:用于创建简单的二集或三集维恩图
  • 以及专门用于绘制有限自动机、交换图、序列图等的各种扩展

测试你的绘图技能

CeTZ项目包含大量的单元测试,这些测试不仅确保了库的稳定性,也为学习提供了绝佳的参考。你可以通过运行测试来验证你的理解:

just test

结语

CeTZ为Typst用户提供了一个功能强大且易于使用的绘图解决方案。无论你是需要创建学术论文中的图表,还是想要制作复杂的科学可视化,CeTZ都能满足你的需求。通过本教程的学习,你应该已经掌握了CeTZ的核心概念和基本用法。

现在就开始你的CeTZ绘图之旅吧!你会发现,创建专业的科学图表从未如此简单。

【免费下载链接】cetzCeTZ: ein Typst Zeichenpaket - A library for drawing stuff with Typst.项目地址: https://gitcode.com/gh_mirrors/ce/cetz

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 22:06:10

44.限界上下文进阶(上)-限界上下文与微服务映射关系-1比1还是1比N

44 限界上下文进阶(上):限界上下文与微服务的映射关系 你好,欢迎来到第 44 讲。 在完成了对限界上下文的识别之后,我们已经手握一张“城市功能区”的规划图。现在,是时候将这张“蓝图”转化为“实体建筑”了。在现代软件架构中,这个“实体建筑”,最主流的形式,就是微…

作者头像 李华
网站建设 2026/4/18 2:05:31

rbd创建特定的用户

!这是关于 Ceph 用户权限管理的非常重要且实用的内容。让我为你详细讲解: 核心概念理解 1. 为什么需要非管理员用户? # 管理员用户(危险!) ceph auth get-or-create client.admin mon allow * osd allow * …

作者头像 李华
网站建设 2026/4/18 1:59:14

nvm-desktop终极指南:轻松管理多个Node.js版本

还在为不同项目需要不同Node.js版本而烦恼吗?nvm-desktop桌面应用让Node.js版本管理变得前所未有的简单。这款专为开发者设计的工具,彻底解决了多版本切换的痛点,让开发环境配置一键完成。 【免费下载链接】nvm-desktop 项目地址: https:/…

作者头像 李华
网站建设 2026/4/18 1:58:31

联想拯救者BIOS解锁实战:3步激活隐藏的高级硬件控制功能

联想拯救者BIOS解锁实战:3步激活隐藏的高级硬件控制功能 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具,例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/gh_mirrors…

作者头像 李华
网站建设 2026/4/18 3:44:31

java计算机毕业设计人文学子考研交流平台 基于SpringBoot的文科生考研资讯与互动社区 面向人文社科考生的院校信息共享与经验交流系统

计算机毕业设计人文学子考研交流平台91mn99(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。“择校、找资料、问经验”三件套曾是人文考研人离不开的三大灵魂拷问:院校…

作者头像 李华
网站建设 2026/4/18 3:46:42

76、利用SELinux增强Linux安全性

利用SELinux增强Linux安全性 1. 查看进程安全上下文 要查看进程的安全上下文,需要在 ps 命令中使用 -Z 选项。以下示例使用 ps -eZ 命令,然后通过管道将结果传递给 grep ,以仅搜索运行 bash shell的进程: # ps -eZ | grep bash unconfined_u:unconfined_r:un…

作者头像 李华