If you are looking for TeX support, please use the VietTUG Google Group
Vẽ đồ thị hàm số bằng Metapost
đồ thị hàm số
»
Votes:
3/3
Bài viết này giới thiệu cách vẽ đồ thị hàm số bằng Metapost. Việc vẽ thủ công có thể tham khảo ở đây. Tuy nhiên, ta sẽ "cơ giới hoá" cách thủ công trên bằng một macro có tên mplot.mp do Tấn Phú viết. Soạn tập tin funtion.mp với nội dung sau:
input mplot.mp; beginfig(1) grid(-5,5,-5,5); % Vẽ lưới (trái, phải, dưới, trên) axes(-5,5,-5,5); % Vẽ các trục Ox, Oy vardef f(expr x)=x**3-3*x enddef; mplot(f, -2.2, 2.2); endfig; beginfig(2) axes(-4,8,-5,7); tick(-4,8,-5,7); % Vẽ các vạch chia đơn vị vardef f(expr x)=(x-1)/(x-2) enddef; mplot(f, -3.5, 1.8); mplot(f, 2.2, 7.5); % 1 hàm số nhưng phải vẽ 2 đường cong % để tránh điểm hàm số không xác định endfig; bye;
Soạn tiếp tập tin example.tex với nội dung sau:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{center}
\parbox{10cm}{\convertMPtoPDF{funtion.1}{1}{1}}
\end{center}
\begin{center}
\parbox{10cm}{\convertMPtoPDF{funtion.2}{1}{1}}
\end{center}
\end{document}
Đặt 3 tập tin mplot.mp, funtion.mp, example.tex trong cùng một thư mục và biên dịch bằng các lệnh:
mpost funtion.mp pdflatex example.tex
Kết quả như sau:


Tập tin mplot.mp có thể được sử dụng lại để vẽ các đồ thị khác.
Mặc định trong tập tin mplot.mp định trước 1 đơn vị độ dài bằng 0.7cm, bạn có thể thay đổi hằng số này bằng cách gán giá trị mới cho nó. Bạn có thể thay đổi màu, kích thước nét vẽ của lưới, các trục toạ độ và đường cong đồ thị bằng cách sửa trong tâp tin mplot.mp hoặc định nghĩa lại trong tập tin funtion.mp.
Comments
Tuyệt :) Vẽ được hàm số là quá trời ngon rồi :P
Có vài ý:
function(chữ c)Nếu muốn thay đổi đơn vị độ dài chỉ cần gán lại hằng số
ubằng giá trị khác trong tập tinfunction.mpchứ không cần can thiệp vào tập tinmplot.mpnhư sau:Sau đây là hướng dẫn chi tiết biên dịch bằng dòng lệnh cho người dùng Windows (theo yêu cầu riêng của một số bạn):
Giả sử 3 tập tin ở trên lưu trong thư mục
D:\lamthu. Vào Run, gõcmd, hiện ra cửa sổ DOS và gõ lần lượt các lệnh sau:Rồi gõ tiếp 2 lệnh ở trên.