如何在LaTeX中填充极坐标下θ=π/8与r=4√2cos2θ的区域
极坐标图区域填充的LaTeX解决方案
需要绘制极坐标图,填充蓝色直线θ=π/8与红色曲线r=4√2cos2θ之间的区域。以下是未完成填充的原始LaTeX代码:
\documentclass[tikz,border=2mm]{standalone} \usetikzlibrary{patterns} \begin{document} \begin{tikzpicture}[scale=10] \begin{scriptsize} \draw[->](0,0)--(0.5,0) node[right] {initial line}; \draw (0.03,0.2) node[right] {$r=4\sqrt{2}\cos{2\theta}$}; \draw (0,0.01) node[above] {$O$}; \draw[blue] (0,0)--(0.35,0.15) node[right] {$\theta=\frac{\pi}{8}$}; \draw[color=red,domain=0:6.28,samples=200,smooth] plot (canvas polar cs:angle=\x r,radius= {4*sqrt(2)*cos(2*\x r)}); \end{scriptsize} \end{tikzpicture} \end{document}
手动指定坐标填充的方法误差大且不易维护,正确的做法是利用TikZ的极坐标绘图功能,直接基于曲线和直线的数学定义绘制闭合填充区域。以下是修改后的完整代码:
\documentclass[tikz,border=2mm]{standalone} \usetikzlibrary{patterns} \begin{document} \begin{tikzpicture}[scale=10] % 先填充目标区域,避免覆盖线条 \fill[gray!30] (0,0) % 原点O % 沿曲线r=4√2cos2θ从θ=0到θ=π/8绘制 plot[domain=0:pi/8,samples=100,smooth] (canvas polar cs:angle=\x r,radius={4*sqrt(2)*cos(2*\x r)}) % 沿直线θ=π/8回到原点 -- (0,0); \begin{scriptsize} \draw[->](0,0)--(0.5,0) node[right] {initial line}; \draw (0.03,0.2) node[right] {$r=4\sqrt{2}\cos{2\theta}$}; \draw (0,0.01) node[above] {$O$}; \draw[blue] (0,0)--(canvas polar cs:angle=pi/8 r,radius={4*sqrt(2)*cos(2*(pi/8 r))}) node[right] {$\theta=\frac{\pi}{8}$}; \draw[color=red,domain=0:6.28,samples=200,smooth] plot (canvas polar cs:angle=\x r,radius={4*sqrt(2)*cos(2*\x r)}); \end{scriptsize} \end{tikzpicture} \end{document}
关键修改说明:
- 填充区域:使用
\fill命令定义闭合路径,从原点出发,沿曲线r=4√2cos2θ从θ=0到θ=π/8,再回到原点,完成区域填充。gray!30表示浅灰色填充,可根据需求替换为其他颜色(如blue!20)。 - 蓝色直线修正:将蓝色直线的终点改为曲线在
θ=π/8处的交点,确保直线与曲线准确衔接,避免手动坐标的误差。 - 绘制顺序:先填充区域,再绘制线条和标注,保证线条不会被填充色覆盖。
内容的提问来源于stack exchange,提问作者Thắng Nguyễn Văn
相关产品推荐
相关产品推荐

