如何为 LaTeX 创建 MetaPost 图像

如何为 LaTeX 创建 MetaPost 图像

我正在尝试弄清楚如何在 metapost 中创建此图像

我正在尝试弄清楚如何在 MetaPost 中创建此图像

答案1

更新

我做了一些调整,并增加了一些关于所用方法的解释。请注意,我更改了颜色名称只是为了兼容性原因。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath,amssymb}
%-------------------------------------------------------------------------------------
% The caption package is used just to illustrate the caption shown in the image.
\usepackage{caption}
\captionsetup[figure]{font={bf},format=plain}
%-------------------------------------------------------------------------------------
\usepackage[shellescape]{gmp}
\begin{document}
Angles may be measured in degrees or radians. Using the relationship $\pi \text{ radians } = 180^\circ $, we gather that 
    \[1 \text{ radian } = \frac{180^\circ}{\pi}\; (\approx 57.3 \text{ degrees})\]
See Figure~\ref{fig:radian} for an illustration of the size of a radian.
\begin{figure}
\centering
\begin{mpost}
    % Let us define the colours to be used similar to the dvipsnames OrangeRedMP and CeruleanMP
    %-------------------------------------------------------------------------------------
    % Stating the names of new colors. MetaPost only accepts RGB.
    color OrangeRedMP; 
    color CeruleanMP;
    OrangeRedMP = (236/256,13/256,88/256); 
    CeruleanMP = (19/256,163/256,229/256);
    %-------------------------------------------------------------------------------------
    % Defining the nodes for the axis and their coordinates
    pair A,B,C,D,E;
    A := (-2.5cm,0); B := (2.5cm,0); C := (0,-2.5cm); D := (0,2.5cm); 
    %-------------------------------------------------------------------------------------
    % Defining the value of pi to calculate the value of a radian
    numeric pi; pi := 3.1415926;
    numeric radian; radian := 180/pi;
    %-------------------------------------------------------------------------------------
    % Draw the axis with arrows and labeling them
    drawarrow A -- B;
    drawarrow C -- D;
    label.rt  (btex $x$ etex,B);
    label.top (btex $y$ etex,D);
    %-------------------------------------------------------------------------------------
    % Other labels of the diagram
    label.llft(btex $0$ etex,origin);
    label.bot (btex $r$ etex,origin) shifted (0.75cm,0cm) withcolor OrangeRedMP;
    label.rt  (btex $\theta=1$ radian etex,C) shifted (0.5cm,0.3cm);
    %-------------------------------------------------------------------------------------
    % Angle theta with label
    label (btex $\theta$ etex,origin+dir(radian/2)*5mm) withcolor OrangeRedMP;
    drawarrow 0.75cm * dir 0 {dir 90} ..
              0.75cm * dir radian {dir(90+radian)} withcolor OrangeRedMP;
    %-------------------------------------------------------------------------------------
    % Circle scaled
    draw fullcircle scaled 3cm withcolor CeruleanMP; 
    % Comment the line above and uncomment below to see increased line width
    %draw fullcircle scaled 3cm withpen pencircle scaled 1.1 withcolor CeruleanMP;
    %-------------------------------------------------------------------------------------
    % Rays containing 1 radian  
    drawarrow (0,0) -- 2cm*dir 0 withcolor OrangeRedMP;
    drawarrow (0,0) -- 2cm*dir radian withcolor OrangeRedMP;
    %-------------------------------------------------------------------------------------
    % Defining arc of length of r and label
    path arc;
    arc = 1.5cm * dir 0 {dir 90} ..
          1.5cm * dir radian {dir(90+radian)};
    % Define position of radius label on arc and putting the label
    E := point(0.5) of arc; 
    label.urt (btex $r$ etex, E) withcolor OrangeRedMP;
    % Draw arc
    draw arc withcolor OrangeRedMP;
\end{mpost}
\caption{}
\label{fig:radian}
\end{figure}
\end{document}

这是旧的 MWE,供参考:

在此处输入图片描述

\documentclass{article}
\usepackage[shellescape]{gmp}
\begin{document}
\begin{mpost}
%beginfig(1};
    color OrangeRed;
    color Cerulean;
    OrangeRed = (236/256,13/256,88/256);
    Cerulean = (19/256,163/256,229/256);
    pair A,B,C,D;
    A := (-2.5cm,0); B := (2.5cm,0); C := (0,-2.5cm); D := (0,2.5cm);
    numeric pi; pi := 3.1415926;
    numeric radian; radian := 180/pi;
    drawarrow A -- B;
    drawarrow C -- D;
    label.rt  (btex $x$ etex,B);
    label.top (btex $y$ etex,D);
    label.llft(btex $0$ etex,origin);
    label.urt (btex $\theta$ etex,origin) shifted (0.25cm,0cm) withcolor OrangeRed;
    label.bot (btex $r$ etex,origin) shifted (0.75cm,0cm) withcolor OrangeRed;
    label.urt (btex $r$ etex,origin) shifted (1.35cm,0.6cm) withcolor OrangeRed;
    label.rt  (btex $\theta=1$ radian etex,C) shifted (1.5cm,0.3cm);
    draw fullcircle scaled 3cm withcolor Cerulean;
    drawarrow (0,0) -- 2cm*dir 0 withcolor OrangeRed;
    drawarrow (0,0) -- 2cm*dir radian withcolor OrangeRed;
    draw 1.5cm * dir 0 {dir 90} ..
         1.5cm * dir radian {dir(90+radian)} withcolor OrangeRed;
    drawarrow 0.75cm * dir 0 {dir 90} ..
              0.75cm * dir radian {dir(90+radian)} withcolor OrangeRed;

%endfig;
\end{mpost}
\end{document}

相关内容