การสร้างไดอะแกรมใน ASCII


141

ฉันกำลังมองหาโปรแกรมที่ฉันสามารถใช้เพื่อสร้างแผนภาพ ASCII ดังกล่าว:

    +---------+
    |         |                        +--------------+
    |   NFS   |--+                     |              |
    |         |  |                 +-->|   CacheFS    |
    +---------+  |   +----------+  |   |  /dev/hda5   |
                 |   |          |  |   +--------------+
    +---------+  +-->|          |  |
    |         |      |          |--+
    |   AFS   |----->| FS-Cache |
    |         |      |          |--+
    +---------+  +-->|          |  |
                 |   |          |  |   +--------------+
    +---------+  |   +----------+  |   |              |
    |         |  |                 +-->|  CacheFiles  |
    |  ISOFS  |--+                     |  /var/cache  |
    |         |                        +--------------+
    +---------+

มันควรจะเป็นแพคเกจที่มีอยู่ในDebian แผนภาพยอดเยี่ยมที่แสดงด้านบนนำมาจากเอกสารเคอร์เนล Linux ฉันไม่อยากจะเชื่อเลยว่ามันถูกสร้างขึ้นด้วยมือ ต้องมีเครื่องมือในการสร้าง


6
คุณสามารถวาดไดอะแกรมชนิดนี้จากภายในvimโดยใช้ปลั๊กอินDrawIt
dawud

12
"ฉันไม่อยากเชื่อเลยว่าสิ่งเหล่านี้ถูกสร้างขึ้นด้วยมือต้องมีเครื่องมือบางอย่างในการสร้าง" ฉันเชื่อได้อย่างง่ายดายว่ามันถูกสร้างขึ้นด้วยมือโดยเฉพาะอย่างยิ่งถ้าคุณเป็นเช่นทำงานจากร่างหรือแหล่งอื่น ๆ สำหรับแผนภาพ ใช้เวลาไม่เกิน 5 นาที
goldilocks

2
ฉันสามารถเชื่อได้อย่างง่ายดายว่ามันถูกสร้างขึ้นด้วยมือเพราะจริง ๆ แล้วมันค่อนข้างง่ายที่จะทำถ้าคุณใช้สามัญสำนึกเล็กน้อยและจินตนาการในหัวของคุณก่อน แน่นอนว่าใช้เวลานานกว่าสองสามนาทีกว่าจะใช้กับ Asciio หรืออะไรบางอย่าง
Miles Rout

คำตอบ:


137

asciio

ฉันใช้asciioมาหลายปีแล้ว asciioหลายไดอะแกรมบนเว็บไซต์นี้ผมได้สร้างขึ้นโดยใช้

ตัวอย่าง

  vncviewer         .-,(  ),-.    
   __  _         .-(          )-.           gateway           vncserver 
  [__]|=|  ---->(    internet    )-------> __________ ------> ____   __ 
  /::/|_|        '-(          ).-'        [_...__...°]       |    | |==|
                     '-.( ).-'                               |____| |  |
                                                             /::::/ |__|

GUI มีลักษณะเช่นนี้

           เอสเอสของ asciio

หมายเหตุ:ทุกอย่างมาจากเมนูคลิกขวาเช่นเดียวกับปุ่มลัด

วาดมัน

การใช้งานvimร่วมกับปลั๊กอิน DrawItคุณสามารถสร้างไดอะแกรมพื้นฐานได้ ภาพรวมที่ดีของวิธีการติดตั้งและใช้งานได้ที่นี่ในบทความนี้หัวข้อ: วิธีการสร้างภาพวาด ASCII ในกลุ่มบรรณาธิการ (วาดกล่อง, เส้น, จุดไข่ปลา, ลูกศรภายในแฟ้มข้อความ)

asciiflow

มีเว็บไซต์ที่ชื่อว่าasciiflowซึ่งอาจเป็นวิธีที่ง่ายที่สุดในการวาดแผนภาพประเภทนี้

   เอสเอส # 2

Jave

อีกเครื่องมือหนึ่งคือJavE ที่เขียนด้วยภาษาจาวาที่สามารถสร้าง ascii diagrams เช่นนี้ได้เช่นกัน

                                 ,'''''''''''''|
                                 | Controller  |
                                 |             |
                                 '`'i''''''''''
                                  ,'        `.
                                ,'            `.
                               -                -
                     ,'''''''''''''|      ,''''''''''''`.
                     |    Model    |______|    View     |
                     |             |      |             |
                      `''''''''''''       '`'''''''''''''

GUI มีลักษณะดังนี้:

   เอสเอส # 2

ทรัพยากร


1
คุณสามารถเพิ่มdiiagrams.comถ้าคุณต้องการ
I3ck

โปรแกรมติดตั้ง Windows สำหรับ asciio จากลิงค์ไม่ทำงานอีกต่อไป โปรแกรมติดตั้งแจ้งว่ามีข้อผิดพลาด 404 จากนั้นจึงยกเลิก ฉันเพิ่งใช้ asciiflow แทน
Joseph238

1
@ Joseph238 - ขอบคุณสำหรับคำติชมเนื่องจากนี่เป็นเว็บไซต์ Unix & Linux ฉันไม่แน่ใจว่าผู้คนที่สัญจรไปมาจะสนใจทุกอย่างมาก หากคุณเจอลิงค์กรุณาแจ้งให้เราทราบ
slm

2
อาจจะเพิ่มเกี่ยวกับหมายเหตุ: textik.com
Isaac

27

ดูที่โหมดศิลปินหรือโหมดรูปภาพสำหรับ Emacs (ดูที่หน้าจอนี้ ) นอกจากนี้คุณยังอาจต้องการตรวจสอบditaa


1 Re: "ditaa" ดังนั้นบางคนอาจจะทำสิ่งเหล่านี้ด้วยมือเพื่อให้พวกเขาสามารถนำมาแปลงเป็นรูปแบบกราฟิก ...
Goldilocks

2
ใช่ ditaa เป็นการผสมผสานที่ยอดเยี่ยมกับ asciio
Martijn Heemels

ลิงก์ screencast นั้นตาย
jcubic

24

ฉันพบคำตอบอื่น ฉันไม่แน่ใจว่าสามารถใช้งานได้อย่างสมบูรณ์ แต่โปรดจำไว้ว่า GNU roff (Groff) มีโปรเซสเซอร์สำหรับภาษา Picเช่นเดียวกับ ascii postprocessor ดังนั้นคุณอาจลองทำอะไรแบบนั้น (ถ้าคุณใช้ Linux ทุกอย่างน่าจะติดตั้งแล้ว) เขียนไฟล์ชื่อ test.roff ที่มี:

.PS
box "box1";
line
box "box2";
.PE

จากนั้นพิมพ์: groff -Tascii -p test.roffและคุณควรได้รับ:

+------+     +------+
|      +-----|      |
| box1 |     |box2  |
+------+     +------+

ความนับถือ.


อาจต้องการลบอักขระควบคุมโดยใช้groff -Tlatin1 -P-c -P-b -P-u
mlt

groffได้รับการติดตั้งล่วงหน้าบน Mac OS X :)
Sridhar Sarnobat

15

บางทีคุณอาจสนใจกราฟง่าย

ตัวอย่าง:

   echo "[ Bonn ] -- car --> [ Berlin ], [ Ulm ]" | graph-easy

ผลิต:

    +--------+  car   +-----+
    |  Bonn  | -----> | Ulm |
    +--------+        +-----+
      |
      | car
      v
    +--------+
    | Berlin |
    +--------+

คุณสามารถติดตั้งได้ด้วยคำสั่งต่อไปนี้:

wget http://search.cpan.org/CPAN/authors/id/T/TE/TELS/graph/Graph-Easy-0.64.tar.gz
tar -xzf Graph-Easy-0.64.tar.gz
cd Graph-Easy-0.64
perl Makefile.PL
make test
sudo make install
PATH=$PATH:/opt/local/libexec/perl5.12/sitebin/graph-easy

(โปรดสังเกตหมายเลขรุ่นในสองบรรทัดสุดท้ายและบรรทัดสุดท้าย - พวกเขาอาจมีการเปลี่ยนแปลง)

ภาพหน้าจอที่ดีมีอยู่ในหน้าlddotและdothost (เพราะเครื่องมือทั้งสองเป็นตัวห่อหุ้มgraph-easy)


1
ดูเหมือนว่ารุ่นล่าสุดจะโฮสต์อยู่ใน Github: github.com/ironcamel/Graph-Easy
Sridhar Sarnobat

1
ฉันเดาว่ามันจะทำงานได้ดีเช่น Graphviz แต่ Graphviz ไม่มีเอาต์พุต ASCII ซึ่งเป็นความอัปยศ
Sridhar Sarnobat

กราฟง่ายใช้ภาษา DOT เช่นเดียวกับ Graphviz
ivarec

-1

สำหรับทุกคนที่ใช้ Mac (ไม่โปสเตอร์เดิม) มีเครื่องมือที่ดีมากเรียกว่าMonodraw แน่นอนว่าคุณจะจ่ายไม่กี่ bucks สำหรับความจริงที่ว่ามันขัดสูงและมีประสิทธิภาพและใช้งานง่าย แต่ถ้านี่คือสิ่งที่คุณทำบ่อยมันเป็นเครื่องมือที่มีประโยชน์ที่จะใช้ได้และ $ 10 คือถั่วเมื่อเทียบกับเวลาที่คุณจะ ประหยัด หากคุณไม่ทำเช่นนี้บ่อยครั้งจะมีการทดลองใช้ฟรีคุณจึงพร้อมแล้ว มันยังสามารถส่งออกไปยัง SVG

ไม่ฉันไม่ได้ทำงานให้ บริษัท ฉันแค่เป็นผู้ใช้ที่มีความสุข

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.