画布网格转换为曲线网格

画布网格转换为曲线网格

我想画一个像这样的曲线网格(抱歉,是徒手画的) 曲线网格

我认为最简单(也是最优雅)的解决方案是将画布变换应用于常规grid蒂克兹

然而,我在pgf/TikZ 手册,旋转网格:

\documentclass{standalone}
\usepackage{pgf}
  \begin{document}
    \begin{pgfpicture}
    \pgftransformrotate{10}
    \pgfpathgrid[stepx=1mm,stepy=2mm]{\pgfpoint{0mm}{0mm}}{\pgfpoint{30mm}{30mm}}
    \pgfusepath{stroke}
  \end{pgfpicture}
\end{document}

旋转网格

这些类型的转换是否存在,或者我应该使用推荐的解决方案关于极地网格的问题

答案1

这不是确切的答案,因为我认为改造工具比创建新工具更复杂。就像 Andrew 所说的那样,在你的情况下这是不可能的。

这里有一个宏:(我花了几分钟编写了这个代码,而且我认为 tikz 的专家可以编写一个具有更多选项的更好的宏)

\documentclass{article}
\usepackage{fullpage,tikz} 
\makeatletter  
\pgfkeys{%
/polargrid/.cd,
rmin/.code ={\global\def\rmin {#1}},
rmax/.code ={\global\def\rmax {#1}},
amin/.code ={\global\def\amin {#1}},
amax/.code ={\global\def\amax {#1}},
rstep/.code={\global\def\rstep{#1}}, 
astep/.code={\global\def\astep{#1}}}

\def\polargrid{\pgfutil@ifnextchar[{\polar@grid}{\polar@grid[]}}%
\def\polar@grid[#1]{%
\pgfkeys{/polargrid/.cd,
rmin ={0},
rmax ={10},
amin ={0},
amax ={180},
rstep={1}, 
astep={10}}   
%
\pgfqkeys{/polargrid}{#1}%
\pgfmathsetmacro{\addastep}{\amin+\astep} 
\pgfmathsetmacro{\addrstep}{\rmin+\rstep} 
 \foreach \a in {\amin,\addastep,...,\amax}  \draw[gray] (\a:\rmin) -- (\a:\rmax);  
 \foreach \r in {\rmin,\addrstep,...,\rmax}  \draw[gray] (\amin:\r cm) arc (\amin:\amax:\r cm);    
 } 
\makeatother   
\begin{document} 

\begin{tikzpicture}[scale=.75] 
\polargrid
\end{tikzpicture}  

\begin{tikzpicture}[scale=.75] 
\polargrid[rmin=4,rmax=8,amin=20,amax=120]
\end{tikzpicture}  
\end{document} 

在此处输入图片描述

相关内容