使用极坐标系在 Pspicture 中对图像进行散点图绘制

使用极坐标系在 Pspicture 中对图像进行散点图绘制

我希望能够将图像从图像中的固定点引导到pspicture图片中的各个位置,并分别指定该点的角度和半径。

考虑代码(我用它编译xelatex

\documentclass[12pt]{book} \usepackage{pstricks,psvectorian} \usepackage{xcolor,graphicx}

\begin{document}
\thispagestyle{empty}

\begin{pspicture}(-5,-5)(4,4)%
\psframe[fillcolor=blue!65!red,fillstyle=solid](-5,-5)(5,12) 
\psframe[linecolor=blue!65!red](-5,-5)(5,12)

\rput[tr]{-45}(1.75,1.75){\psvectorian[width=2.1cm,color=white]{63}}


\rput(-2,2){\includegraphics[width=2em]{example-image-b}}
\rput(-1,1){\includegraphics[width=2em]{example-image-a}}
\end{pspicture}%
\end{document}

产生

在此处输入图片描述

对于 MWE,我想固定笛卡尔点 (-1,1)(包含图像 A)并通过指定角度 (-45 度) 和半径 \sqrt{2} 将其投影到点 (-2,2)(现在包含图像 B)。如果可以做到这一点,那么我可以继续将图像 A(单独分配各种缩放因子)分散到 中的其他位置pspicture。我认为这比使用常见的绘图方法要容易得多,因为我需要这种绘图类型涉及在绘制图像之前考虑角度和半径。

问题:如何将图像 A 从笛卡尔点 (-1,1) 指向以下三个位置:(1) 角度=-45 (度);半径=\sqrt{2}。(2) 角度=90;半径=3。(3) 角度=30;半径=2.5?

谢谢。

答案1

如果你不介意切换到lualatex,你可以这样做元帖子,其中包含luamplib可让您完全访问标签的 LaTeX 包以及完整的绘图语言。

在此处输入图片描述

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\usepackage{psvectorian}
\usepackage{graphicx}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);

    fill unitsquare shifted -(1/2, 1/2) scaled 8cm
        withcolor 2/3[red, blue];
    
    label("\psvectorian[color=white, width=2cm]{63}", origin) rotated -45;

    label("\includegraphics[width=2em]{example-image-a}", sqrt(2) * cm * dir -45);
    label("\includegraphics[width=2em]{example-image-a}",         3 cm * dir 90);
    label("\includegraphics[width=2em]{example-image-a}",       2.5 cm * dir 30);

endfig;
\end{mplibcode}
\end{document}

编译它以lualatex直接生成 PDF 文件。

相关内容