วาด hyperbola ด้วย TikZ
คุณสุขุมถามมาใน forum พอดีไม่เคยใช้เหมือนกันเลยตอบไม่ได้ ใช้ MATLAB ทดสอบแล้วตอบ ซึ่งคิดว่าเหมือน ๆ กัน วันนี้นั่งดูเว็บ TUG เล่น ๆ ก็พบว่ามีแพ็กเกจ pgfplots ซึ่งสามารถใช้งานในการพล็อตกราฟได้ดี เลยลองเล่นดูสักพัก แล้วลองทำโจทย์ที่คุณสุขุมให้มาดู ปรากฏว่าง่ายมาก ๆ เลยลองเขียนวิธีการไว้เป็นบันทึกช่วยจำสักหน่อย โจทย์เป็นแบบนี้ครับ ให้พล็อตกราฟพาราโบลา จะได้รหัสของ TikZ เป็นดังนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
\documentclass{report} \usepackage{pgfplots} \begin{document} \begin{tikzpicture} \begin{axis}[xlabel=$x$, ylabel=$y$, title={$frac{x^2}{4}-frac{y^2}{40}=1$}] \addplot[blue,mark=none] expression[domain=2:8]{sqrt(10*x^2-40)}; \addplot[blue,mark=none] expression[domain=2:8]{-sqrt(10*x^2-40)}; \addplot[blue,mark=none] expression[domain=-8:-2]{sqrt(10*x^2-40)}; \addplot[blue,mark=none] expression[domain=-8:-2]{-sqrt(10*x^2-40)}; \end{axis} \end{tikzpicture} \end{document} |
วิธีการพล็อตก็ต้องเปลี่ยนสมการไฮเปอร์โบลาให้อยู่ในรูปสมการ ก่อน ซึ่งจากสมการไฮเปอร์โบลาที่คุณสุขุมให้มาสามารถแปลงเป็นสมการได้ดังนี้ สมการนี้มีปัญหาเล็กน้อยนั่นคือค่า ซึ่งจะต้องไม่มีค่าอยู่ในช่วง ไม่เช่นนั้นค่า ที่ได้จะเป็นจำนวนเชิงซ้อน วิธีการพล็อตก็ต้องแบ่งการพล็อตออกเป็นสองช่วงคือช่วงที่ค่า และช่วงที่ค่า และเนื่องจากรากของสมการมีทั้งค่าบวกและลบ ดังนั้นเวลาพล็อตต้องพล็อตทั้งค่าบวกและลบ สำหรับการวาดรูปโดยใช้ TikZ นั้นให้เริ่มต้นด้วยการเรียกใช้แพ็กเกจ pgfplot กำหนดสิ่งแวดล้อม axis และกำหนด xlabel, ylabel และ title ซึ่งจะมากำหนดทีหลังจากที่ได้พล็อตกราฟจนพอใจแล้วก็ได้ จากตัวอย่างข้างต้นคำสั่ง […]
Read More →