Thông báo lỗi

Notice: Undefined offset: 1 trong counter_get_browser() (dòng 70 của /home/thayphun/viettug.net/modules/counter/counter.lib.inc).

Vẽ đồ thị bằng GeoGebra chèn mã TikZ vào TeX

Vẽ đồ thị (hoặc hình nào đó) bằng phần mềm Geogebra để lấy hình chèn vào TeX là một cách khá nhanh mà nhiều thầy cô dùng. Tuy nhiên một số thầy cô lại xuất ảnh dạng BMP, JPG, PNG rồi chèn các định dạng này vào tài liệu bằng lệnh \includegraphics. Cách làm này không tốt vì hình xuất ra có dung lượng lớn, làm phình to tập tin PDF, chất lượng hình kém và có thể vỡ hạt khi phóng to, in ra bị mờ, không đẹp. Cách tốt hơn là lấy mã TikZ từ Geogebra rồi chèn vào tài liệu TeX.

Thầy cô vẽ đồ thị (hoặc hình nào đó) trong Geogebra hoàn chỉnh, nhấn giữ chuột phải và rê chuột chọn vùng cần xuất ra, thường ta chỉ lấy một vùng chứ không lấy hết. Vào File, Export, Graphics views as PGF/TikZ. Một cửa sổ tiếp theo chọn Generate PGF/TikZ code. Sau đó chọn Save As để lưu code thành một file, chẳng hạn hinh.tex. Dùng trình soạn thảo TeX để mở tập tinh hinh.tex vừa xuất, sửa dòng

\documentclass[10pt]{article}

thành

\documentclass[10pt]{standalone}

rồi biên dịch, xem trước hình vẽ trong tập tin PDF xuất ra. Ta sửa thành lớp standalone để biên dịch được tập tin PDF có lề vừa khít cái hình vẽ để có thể sử dụng vào mục đích khác, chẳng hạn chuyển hình PDF thành PNG để chèn vào Word, dân TeX thì không ai làm việc này, nhưng nếu muốn thì vẫn được.

Hình xuất ra chưa ưng ý vì thiếu các nhãn x, y ghi tên các trục Ox, Oy. Ta sẽ chỉnh sửa thủ công mã TikZ để thêm các tên trục này vào. Ta copy dòng

\draw[color=black] (0pt,-10pt) node[right] {\footnotesize $0$};

rồi sửa thành như sau để viết chữ x bên phải điểm có toạ độ (5;0).

\draw[color=black] (5,0) node[right] {\footnotesize $x$};

Làm tương tự để thêm chữ y vào hình.

\draw[color=black] (0,3.8) node[above] {\footnotesize $y$};

Ta cũng chú ý thêm lệnh clip, lệnh này xác định vùng hiển thị hình chữ nhật bằng toạ độ 2 điểm A, B, trong đó A là điểm bìa dưới bên trái, B là bìa trên bên phải của vùng hiển thị hình chữ nhật.

\clip(-2.77,-1.44) rectangle (2.8285,3.75027);

Biên dịch lại và xem kết quả đã ưng ý chưa. Khi đã ứng ý, ta sẽ copy toàn bộ mã từ \definecolor ... đến \end{tikzpicture} đặt vào tài liệu cần chèn hình vẽ này vào.

Đây là kết quả.

Số lượng chữ số thập phân sau dấu phảy geogebra xuất ra là quá nhiều và không cần thiết, ta có thể xoá bớt nó đi một cách an toàn.

Nếu muốn bỏ lưới toạ độ thì tìm dòng có chữ grid xoá đi:

\draw [color=cqcqcq,, xstep=1.0cm,ystep=1.0cm] (-2.775,-1.44) grid (2.829,3.75);

Bạn cũng có thể bỏ bớt các dấu tick chia đơn vị trên các trục Ox, Oy đi bằng cách tìm dòng lệnh

\foreach \x in {-2.,-1.,1.,2.} \draw[shift={(\x,0)},color=black] (0pt,-2pt) -- (0pt,2pt) node[below] {\footnotesize $\x$};

và sửa thành

\foreach \x in {-2.,-1.,1.,2.} \draw[shift={(\x,0)},color=black] (0pt,0pt) -- (0pt,0pt) node[below] {\footnotesize $\x$};

Làm tương tự cho các vạch chia trên trục tung.

Nếu muốn bỏ các số chia đơn vị thì xoá đoạn sau, để lại dấu chấm phảy.

node[left] {\footnotesize $\y$}

Nếu muốn không chia vạch và không hiển thị số chia đơn vị thì xoá luôn vòng lặp foreach này.

Chúc thầy cô thành công, nếu có thắc mắc gì thì để lại bình luận ở đây.

MÃ NGUỒN TOÀN BỘ FILE

\documentclass[10pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{pgf,tikz}
\usepackage{mathrsfs}
\usetikzlibrary{arrows}
\pagestyle{empty}
\begin{document}
\definecolor{qqzzqq}{rgb}{0.,0.6,0.}
\definecolor{cqcqcq}{rgb}{0.75,0.752,0.75}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
\draw [color=cqcqcq,, xstep=1.0cm,ystep=1.0cm] (-2.775,-1.44) grid (2.829,3.75);
\draw[->,color=black] (-2.77,0.) -- (2.83,0.);
\foreach \x in {-2,-1,1,2} \draw[shift={(\x,0)},color=black] (0pt,-2pt) -- (0pt,2pt) node[below] {\footnotesize $\x$};
\draw[->,color=black] (0.,-1.44) -- (0.,3.7);
\foreach \y in {-1,1,2,3} \draw[shift={(0,\y)},color=black] (2pt,0pt) -- (-2pt,0pt) node[left] {\footnotesize $\y$};
\draw[color=black] (0pt,6pt) node[right] {\footnotesize $O$};
\draw[color=black] (2.8,0) node[right] {\footnotesize $x$};
\draw[color=black] (0,3.8) node[above] {\footnotesize $y$};
\clip(-2,-1.4) rectangle (2.7,3.7);
\draw[line width=1.0pt,color=qqzzqq,smooth,samples=100,domain=-2.776:2.8286] plot(\x,{(\x)^(4.0)-2.0*(\x)^(2.0)});
\begin{scriptsize}
\end{scriptsize}
\end{tikzpicture}
\end{document}
Chuyên mục: 
Chia sẻ tài liệu: 
Đính kèmDung lượng
Tập tin vedothi-bang-geogebra.tex1.15 KB

Bình luận

Ảnh của tanphu

Thầy cô có thể bình luận để yêu cầu ban biên tập viết bài hướng dẫn về cái mà thầy cô đang cần.

Thầy Phú và các thầy(cô) cho hỏi có thể vẽ (tạo code) hàm phân thức bậc nhất  bằng GeoGebra chèn mã TikZ vào Tex được không ạ. Tôi chỉ vẽ được hàm đa thức, hàm phân thức khi xuất code, biên dịch đều báo lỗi.

Ảnh của tanphu

Đối với hàm phân thức thì ta nên vẽ riêng từng nhánh và trong mỗi nhánh dùng domain của lệnh plot không chứa điểm mà hàm số không xác định.