news 2026/6/23 18:13:01

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/6/22 7:42:20

Day27:I2C 协议基础

I2C 总线特点: 双线制:SDA (数据线)、SCL (时钟线),支持多设备通信 开漏输出:需要上拉电阻 (3.3V/5V,4.7K-10KΩ) 主从架构:一个主设备,多个从设备 (通过 7 位地址识别) 通信速率:标…

作者头像 李华
网站建设 2026/6/20 22:18:43

SAP批量修改SPRO配置(针对按公司代码的配置项)

问题原因:科目编号调整变更,系统中有些科目配置是按照公司代码配置,则需要一下子需要调整上百家单位的配置。 此次是针对贷款模块科目配置进行变更,该配置是按照公司代码进行配置的,科目变更导致该配置难以调整&#…

作者头像 李华
网站建设 2026/6/19 0:43:32

以前我手动砌 DOM,现在 Vue 给我盖别墅

📝 用 Vue 开发 Todos 任务清单 你有没有过这样的经历?想做个简单的任务清单,结果写着写着就陷入了 “找 DOM、改 DOM、DOM 又乱了” 的死循环🤯?今天咱们就来聊聊,从传统 JS 的 “手动搬砖” 到 Vue 的 “…

作者头像 李华
网站建设 2026/6/23 19:07:46

祛湿妙招:中医教你赶走湿气

湿邪,作为中医 “六淫” 中最缠绵难去的邪气之一,向来以 “悄无声息、黏滞难除” 著称。它如同隐匿的阴霾,悄悄侵入人体后,或阻滞胸膈,或困遏脾胃,引发身体困重乏力、腹胀便溏、舌苔厚腻、虚胖浮肿等一系列…

作者头像 李华
网站建设 2026/6/22 4:30:32

52.事件驱动架构-利用异步事件解耦微服务-代码实操附消息队列集成

52 事件驱动架构:利用异步事件解耦微服务(代码实操) 你好,欢迎来到第 52 讲。 在过去的几讲中,我们反复提到了一个概念——领域事件(Domain Event)。 在 CQRS 模式中,我们用它来同步“写库”和“读库”的数据。 在上下文映射中,我们用它来实现不同限界上下文之间的异…

作者头像 李华
网站建设 2026/6/23 19:48:10

开源波斯阿拉伯文字体设计原理与多语言排版实践

开源波斯阿拉伯文字体设计原理与多语言排版实践 【免费下载链接】BehdadFont Farbod: Persian/Arabic Open Source Font - بهداد: فونت فارسی با مجوز آزاد 项目地址: https://gitcode.com/gh_mirrors/be/BehdadFont 在数字时代,语言…

作者头像 李华