หัวลูกศรหายไป

Dec 28 2020

ฉันมีลูกศรโค้งซึ่งใช้งานได้ดีถ้ารัศมี 0.7 หรือน้อยกว่า แต่ถ้าฉันเพิ่มรัศมีเป็น 0.8 หัวลูกศรก็จะหายไป การเปลี่ยนพารามิเตอร์ต่างๆดูเหมือนจะไม่ช่วยอะไร ฉันอยากจะเข้าใจว่าเกิดอะไรขึ้นและฉันจะใช้รัศมีที่ใหญ่ขึ้นได้อย่างไร

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows, decorations.markings}
\begin{document}

\begin{tikzpicture}

    % https://tex.stackexchange.com/a/169115/2737
    \tikzset{
    curveArrow/.style={
      thick,
      decoration={markings,mark=at position
       1 with {\arrow[scale=1.5,semithick]{open triangle 60[fill=white]}}},
      double distance=3.5pt, shorten >= 8pt,
      preaction = {decorate},
      postaction = {draw,line width=1.4pt, white,shorten >= 8.5pt}
      }
    }
    % changing radius from 0.7 to 0.8 makes the arrow head disappear
    \draw[curveArrow] (0,0) arc (90:270:0.7); 

\end{tikzpicture}

\end{document}

รัศมี = 0.7

รัศมี = 0.8

คำตอบ

4 hpekristiansen Dec 30 2020 at 04:52

ห้องสมุด Tikz arrowsเลิกใช้งานแล้ว ฉันคิดว่ามันแปลกนิดหน่อยที่จะใช้markingsแค่วางบางอย่างที่ปลายสุดของเส้นทาง - นั่นอาจเป็นแค่ฉัน นี่คือเวอร์ชันดัดแปลงที่ไม่มีสิ่งประดิษฐ์และปัญหาจากรหัสดั้งเดิม แนวคิดคือการวาดลูกศรสามเหลี่ยมก่อนจากนั้นให้เส้นคู่ที่แน่นอนยาวพอที่จะลากทับส่วนหนึ่งของเส้นลูกศรแนวตั้ง

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[
  curveArrow/.style={
    draw=none,
    preaction={draw, thick, -{Triangle[open, length=8pt 1, width=10pt]}},
    postaction={draw, thick, double distance=3.5pt, shorten >=8pt}
  }]
\draw[curveArrow] (0,0) arc (90:270:0.8); 
\end{tikzpicture}
\end{document}