This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

Vẽ đồ thị hàm số bằng Metapost

đồ thị hàm số
Added by tanphu over 2 years ago  »  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

Added by over 2 years ago

Tuyệt :) Vẽ được hàm số là quá trời ngon rồi :P

Có vài ý:

  1. Tên tập tin nên là function (chữ c)
  2. Làm thế nào để đổi đơn vị độ dài (0.7cm) mà không phải can thiệp vào mã nguồn của tập tin gốc?

Added by tanphu over 2 years ago

Nếu muốn thay đổi đơn vị độ dài chỉ cần gán lại hằng số u bằng giá trị khác trong tập tin function.mp chứ không cần can thiệp vào tập tin mplot.mp như sau:

beginfig(1)
  u:=1cm;
  ...
endfig;

beginfig(2)
  u:=2cm;
  ...
endfig;

Added by tanphu over 2 years ago

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:

  D:
  cd lamthu

Rồi gõ tiếp 2 lệnh ở trên.