绘图软件

有没有类似 mermaid 的通过代码绘制这种图形的

image.png

相关帖子

3 回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Mayrain

    这么复杂的图形怎么用代码绘制呀……

    mermaid 也只能绘制一个简单的流程图吧。感觉复杂排版还是得请出专业工具

  • 不怕麻烦可以试试 Tikz,大概让 GPT 配合整了一下。

    xuazilopdac.png

    \documentclass[tikz,border=2mm]{standalone}
    \usetikzlibrary{shapes.geometric, arrows, fit, positioning,calc}
    \begin{document}
    \begin{tikzpicture}[font=\small]
    
    % Ethernet II Frame
    \node[draw, rectangle, minimum height=1cm, minimum width=3cm, fill=cyan!30] (dmac1) {DMAC (6 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=3cm, fill=cyan!30, right=0cm of dmac1] (smac1) {SMAC (6 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=3cm, fill=cyan!60, right=0cm of smac1] (type1) {Type (2 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=11cm, fill=cyan!30, right=0cm of type1] (data1) {Data (46-1500 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=2cm, fill=cyan!30, right=0cm of data1] (fcs1) {FCS (4 B)};
    \node[anchor=east, left=0.5cm of dmac1] (ethernetii) {Ethernet II};
    
    % IEEE 802.3 Frame
    \node[draw, rectangle, minimum height=1cm, minimum width=3cm, fill=cyan!30, below=1.5cm of dmac1] (dmac2) {DMAC (6 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=3cm, fill=cyan!30, right=0cm of dmac2] (smac2) {SMAC (6 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=3cm, fill=cyan!60, right=0cm of smac2] (length) {Length (2 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=3cm, fill=cyan!60, right=0cm of length] (llc) {LLC (3 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=5cm, fill=cyan!60, right=0cm of llc] (snap) {SNAP (5 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=3cm, fill=cyan!30, right=0cm of snap] (data2) {Data (38-1492 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=2cm, fill=cyan!30, right=0cm of data2] (fcs2) {FCS (4 B)};
    \node[anchor=east, left=0.5cm of dmac2] (ieee8023) {IEEE 802.3};
    
    % SNAP Fields Breakdown
    \node[draw, rectangle, minimum height=1cm, minimum width=2cm, fill=cyan!30, below=2cm of llc.west, anchor=west] (dsap) {D.SAP (1 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=2cm, fill=cyan!30, right=0cm of dsap] (ssap) {S.SAP (1 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=2cm, fill=cyan!30, right=0cm of ssap] (control) {Control (1 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=3cm, fill=cyan!30, right=2cm of control] (org) {Org Code (3 B)};
    \node[draw, rectangle, minimum height=1cm, minimum width=2cm, fill=cyan!30, right=0cm of org] (type2) {Type (2 B)};
    
    % Vertical alignment lines
    \draw[dashed] (llc.north west) -- (data1.south west);
    \draw[dashed] (data2.north east) -- (data1.south east);
    
    % Arrows with 46-1500B label
    \draw[<->, thick] ($(llc.north west)!0.5!(data1.south west)$) -- ($(data2.north east)!0.5!(data1.south east)$) node[midway, fill=white, inner sep=1pt] {46-1500 B};
    
    % Fit boxes for IEEE 802.3 breakdown
    \node[draw, dashed, inner sep=2mm, fit={(dsap) (type2)}] (snapfit) {};
    
    % Additional dashed lines for SNAP fit
    \draw[dashed] (llc.south west) -- (snapfit.north west);
    \draw[dashed] (snap.south east) -- (snapfit.north east);
    
    \end{tikzpicture}
    \end{document}
    
    
    1 回复
  • Mayrain

    这个画的确实很棒欸……现在 latex 是不是什么都能做了/笑

    不过为了画这张图感觉这样挺吃力的……

推荐标签 标签

  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 11 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    157 引用 • 3798 回帖
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    85 引用 • 165 回帖 • 2 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1235 回帖 • 407 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 104 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 518 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 772 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3190 引用 • 8214 回帖 • 1 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    7 引用 • 40 回帖
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    26 引用 • 196 回帖 • 19 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    123 引用 • 74 回帖 • 1 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    5 引用 • 7 回帖 • 1 关注
  • V2Ray
    1 引用 • 15 回帖
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖 • 4 关注
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    265 引用 • 666 回帖
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 624 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 24 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖 • 1 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 358 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 101 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    546 引用 • 672 回帖
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖 • 2 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 54 关注