编辑

编辑

我正在为一个班级编写手册,我从不喜欢在我的 tex 中添加图像作为文件,因此我使用以下代码绘制徽标:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\definecolor{xdxdff}{rgb}{0.5,0.5,1.}
\definecolor{qqqqff}{rgb}{0.,0.,1.}
\definecolor{cqcqcq}{rgb}{0.75,0.75,0.75}
\begin{tikzpicture}
\clip(-4.42,-1.90) rectangle (8.03,4.69);
\draw [color=red,fill=red,fill opacity=1.0] (-0.67,1.06) circle (2.41cm);
\draw [color=white,fill=white,fill opacity=1.0] (-0.66,1.71) circle (1.92cm);
\draw [shift={(-0.05,2.21)},color=red]  plot[domain=2.01:4.03,variable=\t]({1.*1.40*cos(\t r)+0.*1.40*sin(\t r)},{0.*1.40*cos(\t r)+1.*1.40*sin(\t r)});
\draw [shift={(-1.60,0.27)},color=red]  plot[domain=-0.48:0.92,variable=\t]({1.*1.08*cos(\t r)+0.*1.08*sin(\t r)},{0.*1.08*cos(\t r)+1.*1.08*sin(\t r)});
\draw [shift={(-1.26,1.06)},color=red]  plot[domain=-1.12:0.68,variable=\t]({1.*1.43*cos(\t r)+0.*1.43*sin(\t r)},{0.*1.43*cos(\t r)+1.*1.43*sin(\t r)});
\draw [shift={(0.42,3.0)},color=red] plot[domain=2.72:4.22,variable=\t]({1.*1.18*cos(\t r)+0.*1.18*sin(\t r)},{0.*1.18*cos(\t r)+1.*1.18*sin(\t r)});
\end{tikzpicture}
\end{document}

这给了我这个图像 在此处输入图片描述

我怎样才能将中间的东西涂成红色?

答案1

我认为使用构造绘制中间的部分curve to比绘制更容易.. controls ..。至少对我来说,尽管我最近才开始对后者有所了解,所以这可能只是我缺乏经验。

无论如何,虽然不是绝对完美的匹配,但这个结果已经非常接近了。(但我认为,圆圈顶部的淡淡红线是观看者造成的,而不是构造上的缺陷。但中间的部分并不是完全完美的匹配。)

\documentclass[tikz,border=5pt,multi]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
  \clip (-.67,1.06) circle (24.1mm);
  \path [fill=red, even odd rule] (-.67,1.06) coordinate (c1) circle (24.1mm) ++(.01,.65) coordinate (c2) circle (19.2mm);
  \draw [draw=red, fill=red] (c2) +(.05,-19.2mm) [out=25, in=-45] to (-.15,1.95) [out=150, in=-125] to ($(c1) + (.05,24.1mm)$) coordinate (a) [out=-155, in=90] to (-1.45,2.2) [out=-90, in=135] to ++(.51,-1.05) [out=-45, in=70] to cycle;
\end{tikzpicture}
\end{document}

事物

编辑

只需按照建议更改第六行Luis Felipe 的评论

  \path [fill=red, even odd rule] (-.67,1.08) coordinate (c1) circle (24.1mm) ++(.01,.65) coordinate (c2) circle (19.2mm);

消除了红线的淡淡痕迹,但代价是切断了标志内部的尖端:

切断尖端

然而,如果我们在进行调整之前设置用于内部的坐标,也许我们可以两全其美:

  \path [fill=red, even odd rule] (-.67,1.06) coordinate (c1) ++(0,0.02) circle (24.1mm) ++(.01,.65) coordinate (c2) circle (19.2mm);

两者皆优?

\documentclass[tikz,border=5pt,multi]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
  \clip (-.67,1.06) circle (24.1mm);
  % tweak based on Luis Felipe's comment: ref: https://tex.stackexchange.com/questions/286335/problem-giving-color-to-a-logo/286392?noredirect=1#comment692032_286392
  \path [fill=red, even odd rule] (-.67,1.06) coordinate (c1) ++(0,0.02) circle (24.1mm) ++(.01,.65) coordinate (c2) circle (19.2mm);
  \draw [draw=red, fill=red] (c2) +(.05,-19.2mm) [out=25, in=-45] to (-.15,1.95) [out=150, in=-125] to ($(c1) + (.05,24.1mm)$) coordinate (a) [out=-155, in=90] to (-1.45,2.2) [out=-90, in=135] to ++(.51,-1.05) [out=-45, in=70] to cycle;
\end{tikzpicture}
\end{document}

答案2

这里有一个简单的解决方案。您可以调整参数(\anglei\angleii\angleiii\len)来改变火焰。

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[line width=0,draw=blue]
  \fill[red] (0,0) circle (2.41);
  \begin{scope}[overlay]
    \fill[white] (0,.65) circle (1.92);
  \end{scope}
  \def\anglei{-65}
  \def\angleii{45}
  \def\angleiii{160}
  \def\len{1.5}
  \fill[red]
  (0,.65) ++(0,-1.92)
  arc[start angle=\anglei,end angle=\angleii,radius=\len]
  arc[start angle=\angleii+180,end angle=\angleiii,radius=\len]
  %
  arc[start angle=\anglei+180,end angle=\angleii+180,radius=\len]
  arc[start angle=\angleii+360,end angle=\angleiii+180,radius=\len]
  ;
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

用 运行xelatex。原点是大圆的中心。\pscustom构建一条可填充的封闭路径。

\documentclass[pstricks]{standalone}
\usepackage{pstricks}
\begin{document}

\begin{pspicture}(-3,-3)(3,3)
\pscircle*[linecolor=red]{2.41}
\pscircle*[linecolor=white](0,0.65){1.92}
\pscustom[fillstyle=solid,fillcolor=red,linecolor=red]{%
  \psarc(0.65,1.15){1.4}{!2.01 RadtoDeg}{!4.0 RadtoDeg}
  \psarcn(-0.91,-0.79){1.08}{!0.93 RadtoDeg}{!-0.48 RadtoDeg}
  \psarc(-0.58,0){1.43}{!-1.12 RadtoDeg}{!0.68 RadtoDeg}
  \psarcn(1.1,1.94){1.18}{!4.2 RadtoDeg}{!2.72 RadtoDeg}
}
\end{pspicture}

\end{document}

在此处输入图片描述

如果你想使用pdflatex

\documentclass{book}
\usepackage{pstricks}
\usepackage{auto-pst-pdf}
\begin{document}
[...] 

然后运行pdflatex --shell-escape file.tex

答案4

不太正确,但无论如何......

\documentclass[tikz,border=5]{standalone}
\begin{document}
\tikz[line join=round]\filldraw [red] (0,0) 
  arc (270:180-30:cos 45 / cos 30) arc (180-45:360+45:1)
  arc (30:-90:cos 45 / cos 30) -- cycle
  .. controls ++(30:1) and ++(210:3/2) .. (0,1.5)
  .. controls ++(210:1) and ++(30:3/2) .. cycle;
\end{document}

在此处输入图片描述

相关内容