news 2026/3/27 5:32:02

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/3/20 2:18:38

41.迭代三概述-大规模系统中DDD如何支撑架构演进-从单体到微服务的演进路径

41 迭代三概述:大规模系统中,DDD 如何支撑架构演进? 你好,欢迎来到课程的第四大部分——架构升级。 如果说,第一部分“基础筑基”是让我们学会了 DDD 的“基本功”,第二部分“核心突破”是让我们精通了构建健壮模型的“招式”,那么从这一部分开始,我们将从“战术”层…

作者头像 李华
网站建设 2026/3/12 19:56:00

49.CQRS入门(下)-CQRS适用场景与收益-什么时候该用CQRS

49 CQRS 入门(下):CQRS 的适用场景与收益 你好,欢迎来到第 49 讲。 在上一讲,我们已经理解了 CQRS 的核心思想——将改变系统状态的**命令(Command)和不改变状态的查询(Query)**进行彻底的分离。我们知道,这种分离可以为我们带来模型清晰、可独立优化等一系列好处。…

作者头像 李华
网站建设 2026/3/12 23:21:03

46.上下文映射-限界上下文之间的5种集成模式-附适用场景与代码示例

46 上下文映射:限界上下文之间的 5 种集成模式(附适用场景) 你好,欢迎来到第 46 讲。 通过前面的学习,我们已经掌握了如何使用“限界上下文”这把手术刀,将一个庞大的业务系统,精准地切割成一个个高内聚、低耦合的业务单元(未来的微服务)。 但是,切割完成之后,工…

作者头像 李华
网站建设 2026/3/12 22:57:57

python黑帽子之Windows下木马的常用的功能

有趣的键盘记录思路做键盘记录的话,核心就是用 Python 代码实现:用户按键盘时能实时记录下输入的内容,还能知道这些输入是在哪个窗口里发生的,另外也要能检测到用户有没有用粘贴功能(比如按 CtrlV 或者右键粘贴&#x…

作者头像 李华
网站建设 2026/3/12 22:57:57

zip文件解压显示文件损坏怎么办?介绍5种修复方法

在日常工作和学习中,我们经常需要使用压缩文件来节省存储空间、方便文件传输,ZIP格式就是其中最为常见的一种。但有时候当我们解压一个ZIP文件时,可能会突然弹出“文件已损坏”的提示,这无疑会带来一定的影响。别担心,…

作者头像 李华