使用两种不同的颜色填充箭头而不是路径

使用两种不同的颜色填充箭头而不是路径

我有一些箭头的小问题,但我似乎找不到解决方案。请注意,这个问题与仅为 TikZ 箭头设置填充颜色(而不是路径本身),因为 OP 的意思是让整个箭头变成一种颜色。

如果我希望箭头尖端为黑色而箭头路径为彩色,我会简单地说, draw=black但我需要相反的,即带有彩色尖端的黑色路径。

这就是我得到的:

在此处输入图片描述

这是我的代码:

\documentclass[10pt]{article}
\usepackage[a4paper, margin=1cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{rotating}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{tikz}

\usetikzlibrary{arrows,backgrounds,decorations,shapes,shapes.multipart,positioning}
\pgfplotsset{compat=1.7}

\begin{document}

    \definecolor{blue}{RGB}{0,127,255}

    \tikzset{
    opera/.style={fill=white, inner sep=0pt, right=3mm, text width= 5cm,font=\footnotesize},
    tear/.style={draw=black, fill=blue, -*},.
    }

    \begin{tikzpicture}

\draw[tear] (12, 5) -- (12,4) -- (10,3) -- (10,2) node[opera] at (10,2){Not the path!};

   \end{tikzpicture}
\end{document}

我已尝试删除尽可能多的内容以简化代码,因此如果您看到未使用的包或库,请不要担心。

我想到了一种可能的解决方案,即添加一个选项,但尝试使用或箭头提示>=stealth设置颜色。但都不起作用。o*

答案1

以下答案基于markingspostaction

\documentclass[10pt]{article}
\usepackage[a4paper, margin=1cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{rotating}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{tikz}

\usetikzlibrary{arrows,backgrounds,decorations.markings,shapes,shapes.multipart,positioning}
\pgfplotsset{compat=1.7}

\begin{document}

    \definecolor{blue}{RGB}{0,127,255}

    \tikzset{
    opera/.style={fill=white, inner sep=0pt, right=3mm, text width= 5cm,font=\footnotesize},
    tear/.style={draw=black,-, 
    decoration={markings,mark=at position 1 with {\arrow[draw=black,fill=blue]{*}}},
    postaction=decorate},.
    }

    \begin{tikzpicture}

\draw[tear] (12, 5) -- (12,4) -- (10,3) -- (10,2);

   \end{tikzpicture}
\end{document}

生成结果:
在此处输入图片描述

我从样式中删除了箭头tear,并添加了decoration={markings,mark=at position 1 with {\arrow[draw=black,fill=blue]{*}}}postaction=decorate。这样,箭头就被绘制为线段末尾的装饰,而不会填充路径。您还需要将装饰加载为 和postactionpostaction=decorate这样只会覆盖箭头,而不会覆盖整条线。


编辑:以前的方法现在(随着 PGF 3.0.0 的发布)已经过时了:

\documentclass{standalone}
\usepackage{tikz}
    \usetikzlibrary{arrows.meta}
    \definecolor{myblue}{RGB}{0,127,255}

    \tikzset{
        opera/.style={
            fill=white,
            inner sep=0pt,
            right=3mm,
            text width= 5cm,
            font=\footnotesize
        },
        tear/.style={
            -{Circle[fill=myblue]}      %new code, requires arrows.meta and at least PGF 3.0.0
        },
     }
\begin{document}
\begin{tikzpicture}
    \draw[tear] (12, 5) -- (12,4) -- (10,3) -- (10,2) node[opera] {Not the path!};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容