tkz* 命令与 draw/path

tkz* 命令与 draw/path

我正在学习 TikZ,对两种明显完全不同的处理方式感到困惑,尽管它们看起来完全兼容且可以混合:

\begin{tikzpicture}
\draw[color=black] (20,20) -- (100,20);
% vs
\tkzDrawSegments((20,20),(100,20))
\end{tikzpicture}

我非常确定第二种方法是错误的(请纠正以解决这个问题)。第一种方法似乎更强大(您拥有节点和所有内容),但第二种方法有一些像tkzMarkAngle第一种方法那样很难做到的事情。

有什么区别以及我该如何tkzMarkAngle使用路径来做“简单的事情”?

答案1

我不知道是否可以准确地考虑哪个包更强大(TikZ 还是 tkz 包):事实是它们有不同的语法,但我认为在某些情况下 TikZ 提供了更简单的编程解决方案,而其他情况下 tkz 更直接。

例如,宏\tkzMarkAngle,就是后一种情况。你可以在 shell 中找到宏的代码:

gedit $(kpsewhich tkz-obj-angles.tex)

以下文档尝试使用两个软件包和类似的编程结构来复制相同的图像:

\documentclass[a4paper,11pt]{article}
%\usepackage{tikz}
\usepackage{tkz-euclide} loads tikz
\usepackage{tkzexample}
% to display picture and code
\usetkzobj{all}

\begin{document}
tkz-based solution:
\begin{center}
\begin{tkzexample}[latex=4.5cm]
\begin{tikzpicture}
\tkzDefPoint(0,0){O} 
\tkzDefPoint(2,2){A}
\tkzDefPoint(-2,3){B}
\tkzDrawSegment[thick](O,A)
\tkzDrawSegment[thick](O,B)
% equivalent: \tkzDrawVectors(O,A O,B)
\tkzMarkAngle[fill= yellow,%
 opacity=.5](A,O,B)
\end{tikzpicture}
\end{tkzexample}
\end{center}

Ti\textit{k}Z-based solution:
\begin{center}
\begin{tkzexample}[latex=4.5cm]
\begin{tikzpicture}
\coordinate (O) at (0,0);
\coordinate (A) at (2,2);
\coordinate (B) at (-2,3);
\draw[thick] (B)--(O) 
 node[coordinate,pos=0.7](x-b){};
\draw[thick] (A)--(O) 
 node[coordinate,pos=0.625](x-a){};
\draw[fill=yellow,opacity=.5] 
 (O)--(x-b)  arc (125:38:0.95cm) -- (O);
\end{tikzpicture}
\end{tkzexample}
\end{center}

\end{document}

其规定:

在此处输入图片描述

如您所见,第二张图片不如第一张图片精确,因为 的定义中\tkzMarkAngle有精确的计算。并不是说您不能使用纯 TikZ 进行微积分,而是您需要使代码复杂化。

答案2

tkz是基于 的软件包集合tikz。这些软件包与 兼容,tikz但语法不同。我专门为那些不一定想掌握 如此全面的程序的数学老师创建了这些软件包Tikz

\begin{tikzpicture}
\draw[color=black] (20,20) -- (100,20);
% vs
\tkzDrawSegments((20,20),(100,20))
\end{tikzpicture}

您的例子并不好,因为如果语法正确tkz,我认为最好避免使用坐标,使用点 \tkzDrawSegments(A,B) 就可以了

一个好的代码tkz由几个部分组成:

  1. 点的定义
  2. 变换、计算得到线段、线和圆
  3. 绘制对象
  4. 绘制标记
  5. 写标签

tkz非常具体,无法取代优秀的tikz

答案3

另一种无需计算的方法可能是:

在此处输入图片描述

\documentclass[a4paper,11pt]{article}
\usepackage{tkz-euclide}
\usepackage{tkzexample}
\usetikzlibrary{angles}
% to display picture and code
\usetkzobj{all}

\begin{document}
Ti\textit{k}Z-based solution:
\begin{center}
\begin{tkzexample}[latex=4.5cm]
\begin{tikzpicture}
\coordinate (O) at (0,0);
\coordinate (A) at (2,2);
\coordinate (B) at (-2,3);
\draw pic[%
    draw,
    fill=yellow,
    opacity=.5,
    angle radius=1cm
    ] {angle=A--O--B} ;
\draw[thick] (B)--(O)--(A) ;
\end{tikzpicture}
\end{tkzexample}
\end{center}

\end{document}

相关内容