是否可以标记两个函数的交点tkz-fct
并打印其坐标?
例如在这种情况下:
\documentclass{article}
\usepackage{tkz-fct}
\begin{document}
\begin{tikzpicture}
\tkzInit[ymax=15,xmax=4,ystep=5]
\tkzAxeXY
\tkzFct[color=red,domain=0:4]{2*x**2+5}
\tkzFct[color=blue,domain=0:4]{-x**3+15}
\end{tikzpicture}
\end{document}
答案1
不,tkz-fct 中没有任何具体内容。您需要使用 TikZ 来实现这一点。使用您示例中的简单函数,您可以使用 fp。
我认为当你有复杂的函数时,最好用真正的数学软件来得到交集。
实际上 tkz-fct 仅适用于 gnuplot,也许可以使用 gnuplot 创建的表来找到交集的近似值。
现在也许有了lua,就有可能找到一个很好的方法。
更新
但是我找到了解决方案!我修改了我的包,但我不知道是否会产生不良影响:
我使用 id 作为“名称路径”,并进行了修改\def\tkz@fct
\documentclass{article}
\usepackage{tkz-fct}
\usetikzlibrary{%
arrows,
calc,intersections
}
\makeatletter
\def\tkz@fct[#1]#2{%
\pgfkeys{/tkzfct/.cd,
domain = \tkz@dmin:\tkz@dmax,
samples = 200,
fp = true,
id = tkzfct}
\pgfqkeys{/tkzfct}{#1}%
\iftkz@init@NO%
\FPdiv{\tkz@x@delta}{\tkz@init@xorigine}{\tkz@init@xstep}%
\FPdiv{\tkz@y@delta}{\tkz@init@yorigine}{\tkz@init@ystep}%
\else
\FPset{\tkz@x@delta}{0}%
\FPset{\tkz@y@delta}{0}%
\fi%
% stockage
\advance\tkz@tkzf@fct by 1 %
\FPdiv\tkz@ba{\tkz@min}{\tkz@init@xstep}%
\FPdiv\tkz@bb{\tkz@max}{\tkz@init@xstep}%
\def\x{(x*\tkz@init@xstep)}%
\expandafter\edef\csname tkzFctgnu\@alph\tkz@tkzf@fct \endcsname{#2}%
\expandafter\edef\csname tkzFctgnuLast\endcsname{#2}
\clip (\tkz@xa,\tkz@ya) rectangle (\tkz@xb,\tkz@yb);
\draw[name path =\tkz@fct@id,xshift = -\tkz@x@delta cm,yshift = -\tkz@y@delta cm,/tkzfct/.cd,#1 ]%
plot[id=\tkz@fct@id,domain= \tkz@ba:\tkz@bb,samples = \tkz@fct@samples]%
function{(#2)/\tkz@init@ystep};%
%\end{scope}
\let\tkz@tmp@xstep\tkz@init@xstep
\def\tkz@init@xstep{1}
\iftkz@fp%
\ReplaceSubStrings{\tkz@tempa}{#2}{log}{ln}
\ReplaceSubStrings{\tkz@tempb}{\tkz@tempa}{**}{^}
\ReplaceSubStrings{\tkz@tempa}{\tkz@tempb}{\x}{x}
\ReplaceSubStrings{\tkz@tempb}{\tkz@tempa}{asin}{arcsin}
\ReplaceSubStrings{\tkz@tempa}{\tkz@tempb}{acos}{arccos}
\ReplaceSubStrings{\tkz@tempb}{\tkz@tempa}{atan}{arctan}
\expandafter\edef\csname tkzFct\@alph\tkz@tkzf@fct\endcsname{\tkz@tempb}%
\expandafter\edef\csname tkzFctLast\endcsname{\tkz@tempb}%
\fi
\let\tkz@init@xstep\tkz@tmp@xstep
\catcode`\:=\tkzTWOPTCode\relax
}%
\makeatother
\begin{document}
\begin{tikzpicture}
\tkzInit[ymax=15,xmax=4,ystep=5]
\tkzAxeXY
\tkzFct[id=f,color=red,domain=0:4]{2*x**2+5}
\tkzFct[id=g,color=blue,domain=0:4]{-x**3+15}
\fill [red, opacity=0.5, name intersections={of=f and g}]
(intersection-1) circle (2pt) node {};
\end{tikzpicture}
\end{document}
去做
通过一些计算,您可以获得 Jakes 所写的坐标系值。我需要创建一个特定的宏,因为有时系统会平移,单位会随着和xstep
而变化ystep
。
这是新宏之前的解决方案
\begin{document}
\begin{tikzpicture}
\tkzInit[ymax=15,xmax=4,ystep=5]
\tkzAxeXY
\tkzFct[id=f,color=red,domain=0:4]{2*x**2+5}
\tkzFct[id=g,color=blue,domain=0:4]{-x**3+15}
\makeatletter
\draw [name intersections={of=f and g, by=fxg}] let \p1=(fxg) in
(fxg) circle (1pt) \pgfextra{\pgfmathsetmacro\xc{\x1/28.45}\pgfmathsetmacro\yc{\y1/28.45*\tkz@init@ystep}} node [right,align=left] {a=\xc\\ b=\yc};
\end{tikzpicture}
答案2
如果直接使用 TikZ 进行绘图并将其与intersections
库结合,这是可能的。
\documentclass{article}
\usepackage{tkz-fct}
\usetikzlibrary{intersections}
\tikzset{
name plot/.style={every path/.style={name path global=#1}}
}
\begin{document}
\begin{tikzpicture}
\tkzInit[ymax=15,xmax=4,ystep=5]
\tkzAxeXY
%
\tkzFct[name plot=A,color=red,domain=0:4]{2*x**2+5}
%
\tkzFct[name plot=B,color=blue,domain=0:4]{-x**3+15}
%
\draw [name intersections={of=A and B, by=AxB}] (AxB) circle (2pt);
\end{tikzpicture}
\end{document}
使用下面这行代码,您可以读出交点在结果图片中的绝对坐标。我猜,通过一些计算,您可以得到坐标系值……
\draw [name intersections={of=A and B, by=AxB}] let \p1=(AxB) in
(AxB) circle (1pt) node [right] {\x1,\y1};
文件列表
*File List*
article.cls 2007/10/19 v1.4h Standard LaTeX document class
size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
tkz-fct.sty 2011/06/01 1.16 c function
tkz-base.sty 2011/06/01 1.16 c tkz-base
etex.sty 1998/03/26 v2.0 eTeX basic definition package (PEB)
tikz.sty 2010/10/13 v2.10 (rcs-revision 1.76)
pgf.sty 2008/01/15 v2.10 (rcs-revision 1.12)
pgfrcs.sty 2010/10/25 v2.10 (rcs-revision 1.24)
everyshi.sty 2001/05/15 v3.00 EveryShipout Package (MS)
pgfrcs.code.tex
pgfcore.sty 2010/04/11 v2.10 (rcs-revision 1.7)
graphicx.sty 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
keyval.sty 1999/03/16 v1.13 key=value parser (DPC)
graphics.sty 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
trig.sty 1999/03/16 v1.09 sin cos tan (DPC)
graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
infwarerr.sty 2010/04/08 v1.3 Providing info/warning/message (HO)
ltxcmds.sty 2011/04/18 v1.20 LaTeX kernel commands for general use (HO)
pgfsys.sty 2010/06/30 v2.10 (rcs-revision 1.37)
pgfsys.code.tex
pgfsyssoftpath.code.tex 2008/07/18 (rcs-revision 1.7)
pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4)
xcolor.sty 2007/01/21 v2.11 LaTeX color extensions (UK)
color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
pgfcore.code.tex
pgfcomp-version-0-65.sty 2007/07/03 v2.10 (rcs-revision 1.7)
pgfcomp-version-1-18.sty 2007/07/23 v2.10 (rcs-revision 1.1)
pgffor.sty 2010/03/23 v2.10 (rcs-revision 1.18)
pgfkeys.sty
pgfkeys.code.tex
pgffor.code.tex
tikz.code.tex
numprint.sty 2008/02/17 v1.38 Print numbers (HH)
array.sty 2008/09/09 v2.4c Tabular extension package (FMi)
fp.sty 1995/04/02
defpattern.sty 1994/10/12
fp-basic.sty 1996/05/13
fp-addons.sty 1995/03/15
fp-snap.sty 1995/04/05
fp-exp.sty 1995/04/03
fp-trigo.sty 1995/04/14
fp-pas.sty 1994/08/29
fp-random.sty 1995/02/23
fp-eqn.sty 1995/04/03
fp-upn.sty 1996/10/21
fp-eval.sty 1995/04/03
tkz-tools-utilities.tex
tkz-tools-arith.tex
tkz-tools-base.tex
tkz-tools-misc.tex
tkz-tools-math.tex
tkz-obj-points.tex
tkz-obj-segments.tex
tkz-obj-marks.tex
supp-pdf.mkii
pdftexcmds.sty 2011/04/22 v0.16 Utilities of pdfTeX for LuaTeX (HO)
ifluatex.sty 2010/03/01 v1.3 Provides the ifluatex switch (HO)
ifpdf.sty 2011/01/30 v2.3 Provides the ifpdf switch (HO)
epstopdf-base.sty 2010/02/09 v2.5 Base part for package epstopdf
grfext.sty 2010/08/19 v1.1 Managing graphics extensions (HO)
kvdefinekeys.sty 2011/04/07 v1.3 Defining keys (HO)
kvoptions.sty 2010/12/23 v3.10 Keyval support for LaTeX options (HO)
kvsetkeys.sty 2011/04/07 v1.13 Key value parser (HO)
etexcmds.sty 2011/02/16 v1.5 Prefix for e-TeX command names (HO)
epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
***********