Tag Archives: TikZ

The Power of TikZ

ได้รู้จัก TikZ มานาน แต่ใช้น้อยมาก ทั้ง ๆ ที่ pgf และ TikZ เป็นระบบกราฟฟิคที่เกิดมาคู่กับ Beamer (tool ในการสร้าง presentation ที่นิยมมาก ๆ ในวงการศึกษา) เหตุผลก็ง่าย ๆ ครับ ตัวภาษาที่เป็นคู่มือเล่มหนายังกับ textbook อ่านจบไปร้อยหน้า ก็ยังทำอะไรมากไม่ได้ วิธีการเลี่ยงไปใช้ pgfplot ช่วยในบางกรณีก็ทำมาแล้ว ยากพอกันแต่คู่มือบางกว่า ปัญหาก็เกิดอีกเพราะมันช้ามาก ผมยกตัวอย่าง ถ้าผมต้องการวาดภาพแบบนี้ลงในหนังสือผม (คลิ๊กที่รูปเพื่อดูขนาดจริง) จะทำอย่างไรครับ เมื่อก่อนผมใช้ m4 circuit macro ส่วนกราฟก็ใช้ MATLAB

วาดแผนภาพ (diagram) ง่าย(ที่ไหน) ด้วย TikZ ตอนที่ 1

ถ้าใครเคยใช้ beamer, TikZ มาบ้าง แล้วเริ่มต้นด้วยการอ่านคู่มือโดยมีเป้าหมายเพื่อที่จำทำงานง่าย ๆ บางอย่างให้เสร็จในเวลาอันรวดเร็ว นั่นหมายความว่าคุณชอบทรมานตัวเอง คู่มือของ beamer และ TikZ นั้นหนา รายละเอียดเยอะ แล้วก็ "ต้องอ่านตั้งแต่ต้น" ใครไม่เคยใช้ beamer และ TikZ และไม่อยากแตะ แต่เคยสัมผัสคู่มือของอุปกรณ์จากเยอรมันเช่น Siemens, dSpace (อาจจะรวม SAP เข้าไปด้วย) ก็น่าจะรู้ดีว่า คู่มือเหล่านี้จะมี Quick Start ที่อ่านจบแล้วไปต่อไปไม่ได้ ตัวอย่างถัดไปไม่สามารถขยายต่อจากตัวอย่างใน Quick Start ได้ บางครั้งทำตามตัวอย่างในบทถัด ๆ ไปทุกอย่าง แต่ได้

วาด hyperbola ด้วย TikZ

hyperbola plot with TikZ

คุณสุขุมถามมาใน forum พอดีไม่เคยใช้เหมือนกันเลยตอบไม่ได้ ใช้ MATLAB ทดสอบแล้วตอบ ซึ่งคิดว่าเหมือน ๆ กัน วันนี้นั่งดูเว็บ TUG เล่น ๆ ก็พบว่ามีแพ็กเกจ pgfplots ซึ่งสามารถใช้งานในการพล็อตกราฟได้ดี เลยลองเล่นดูสักพัก แล้วลองทำโจทย์ที่คุณสุขุมให้มาดู ปรากฏว่าง่ายมาก ๆ เลยลองเขียนวิธีการไว้เป็นบันทึกช่วยจำสักหน่อย โจทย์เป็นแบบนี้ครับ ให้พล็อตกราฟพาราโบลา     จะได้รหัสของ TikZ เป็นดังนี้ [crayon-59e9a2721b464020624601/] วิธีการพล็อตก็ต้องเปลี่ยนสมการไฮเปอร์โบลาให้อยู่ในรูปสมการ     ก่อน ซึ่งจากสมการไฮเปอร์โบลาที่คุณสุขุมให้มาสามารถแปลงเป็นสมการได้ดังนี้ สมการนี้มีปัญหาเล็กน้อยนั่นคือค่า ซึ่งจะต้องไม่มีค่าอยู่ในช่วง ไม่เช่นนั้นค่า ที่ได้จะเป็นจำนวนเชิงซ้อน วิธีการพล็อตก็ต้องแบ่งการพล็อตออกเป็นสองช่วงคือช่วงที่ค่า และช่วงที่ค่า