一个基于tkz-elements+tkz-euclide的方案如下:
% lualatex
\documentclass[tikz,border=5pt]{standalone}
\usepackage[mini]{tkz-euclide}
\usepackage{tkz-elements}
\usepackage{fouriernc}
\directlua{
init_elements()
z.O = point(0, 0)
z.F = point(1, 0)
z.m = point(-1, 1)
z.n = point(-1, -1)
L.mn = line(z.m, z.n)
CO.PA = conic(z.F, L.mn, 1)
PA.curve = CO.PA:points(-6, 6, 100)
slope = 1.1 -- you can modify the slope of Line.AB
z.Fp = z.F + point(1,slope)
L.AB = line(z.F, z.Fp)
z.B, z.A = intersection(CO.PA, L.AB)
z.Fpp = z.F:rotation( -math.pi / 2, z.Fp )
L.CD = line(z.F, z.Fpp)
z.C, z.D = intersection(CO.PA, L.CD)
}
\begin{document}
\begin{tikzpicture}
\tkzGetNodes
\tkzInit[xmin=-1,xmax=9,ymin=-6,ymax=4]
\tkzDrawX[noticks,thick]\tkzDrawY[noticks,thick]
\tkzDrawCoordinates[smooth,thick](PA.curve)
\tkzDrawSegments[thick](A,B C,D)
\tkzDrawPoints[blue](O,F,A,B,C,D)
\tkzLabelPoints[below left](O)
\tkzLabelPoints[below=3pt](A,D,F)
\tkzLabelPoints[right](B,C)
\end{tikzpicture}
\end{document}
一个显然的优点是方便控制「斜率参数」、「坐标轴长度」、「抛物线的焦点准线参数」等...
不过有点小瑕疵,如何使用一行命令控制全局的line width=1pt呢,不知为何\tkzSetUpLine并不能对图里的所有线都生效ε=( o`ω′)ノ














问 是否有成熟的方案绘制如下的圆锥曲线的图像?