news 2026/6/10 23:58:26

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/10 10:29:50

ModernWMS部署实战:中小企业如何快速构建专业级仓储管理系统

ModernWMS部署实战:中小企业如何快速构建专业级仓储管理系统 【免费下载链接】ModernWMS The open source simple and complete warehouse management system is derived from our many years of experience in implementing erp projects. We stripped the origina…

作者头像 李华
网站建设 2026/6/10 10:24:15

50.CQRS进阶(上)-CQRS代码架构设计命令端+查询端-附完整实现

50 CQRS 进阶(上):CQRS 的代码架构设计(命令端 + 查询端) 你好,欢迎来到第 50 讲。 在入门篇中,我们已经理解了 CQRS 的核心思想——读写分离,以及它的三大适用场景。我们知道,在逻辑上,CQRS 将系统划分为“命令处理端”和“查询处理端”。 现在,是时候将这个逻辑…

作者头像 李华
网站建设 2026/6/10 9:20:13

Conductor微服务编排引擎终极实战指南:从入门到精通

Conductor微服务编排引擎终极实战指南:从入门到精通 【免费下载链接】conductor Conductor is a microservices orchestration engine. 项目地址: https://gitcode.com/GitHub_Trending/co/conductor 微服务编排引擎Conductor是Netflix开源的核心项目&#x…

作者头像 李华
网站建设 2026/6/9 18:33:50

常用的 SQL 语句分类及其语法:

好的,以下是常用的 SQL 语句分类及其语法:1. 数据查询 (SELECT)基本查询:SELECT 列名1, 列名2, ... FROM 表名;查询所有列:SELECT * FROM 表名;查询表数据:SELECT COUNT(*) FROM 表名带条件查询 (WHERE):SE…

作者头像 李华
网站建设 2026/6/10 10:27:14

ECM CCCM

✅ ECM19.0 中的 CCCM:跨分量相关模型详解 在 VVC(H.266) 的实验参考模型 ECM(Experimental Common Model)19.0 中,CCCM(Cross-Component Correlation Model) 是一项关键的屏幕内容编…

作者头像 李华
网站建设 2026/6/10 10:27:15

Cuda Rudece算子实现(附4090/h100测试)

1.Ruduce/规约 定义 对整个张量进行一个操作,得到一个标量结果。这个操作可以是max,min,summax,min,summax,min,sum等。 2.原理 我们用单线程的思路来实现的话,就是遍历整个张量,然后来做reducereducereduce的操作即可。 for(int i 0; i…

作者头像 李华