4

I'm trying to draw a small arc by shifting this quart of circle as the figure shows : enter image description here

Here's the code I used :

\begin{tikzpicture}[>=stealth,pics/tang/.style={code={
    \draw[->] (0,0) coordinate (M)-- (2,0) coordinate (v) node[pos=1.1]{$\vec F$}; 
    }}]
\coordinate(O) at (0,0);
 
\draw[semithick] (0.2,3.6) to[bend left]  pic[pos=0.4,sloped]{tang} (3.8,1);


\node[above] at (M) {$M$};
\node [below] at (0.656,1) {$(\Delta)$};
\filldraw  (0.656,1)circle(0.03);
\draw[densely dashed] (0.656,1)--(M);

\end{tikzpicture}

And here's what I want

enter image description here

Can some of you let me know more about the begin{scope} option, as I believe it'll solve my problem, and yeah Thanks in advance.

2
  • I don't think a scope environment would be needed here. It is commonly used for things like for example applying the same settings to multiple paths, or defining a local bounding box. The additional arrow you want, is that a straight line parallel to the F-vector, or an arc? Is the text just two separate words at different positions along the arrow? Jun 19 at 17:10
  • Not related, but your tangent does not seem to be really accurate. Shouldn't it be perpendicular to the dashed line? Now for the arrow, you just need to draw an arc with [->] option and add a node containing you text. No need to use scope.
    – SebGlav
    Jun 19 at 17:17
4

Since I don't understand why you use pic for a simple drawing like this one, I suggest the following.

Tangent on arc

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{arrows.meta}

\begin{document}
    \begin{tikzpicture}[>={Stealth[scale=1.5]}]
        \def\R{8} % Radius of circle
        \def\A{45} % Angle for point M (change at your conveniance)
        \coordinate (D) at (0,0);
        \coordinate (M) at (\A:\R);
        \draw (5:\R) arc (5:95:\R);
        \draw[<-] (40:1.3*\R) arc (40:50:1.3*\R) node[midway,above right] {sens positif};
        
        \draw[dashed] (D) -- (M);
        \draw[->] (M) --++ (\A-90:\R/2) node[midway,above right] {$\vec{F}$};
        \foreach \p in {D,M} \node[circle,fill=black,inner sep=1.5pt] at (\p) {};
        \node[below=5pt] at (D) {$(\Delta)$};
        \node[above right] at (M) {$M$};
        
    \end{tikzpicture}
\end{document}
3
  • Can you explain this line for me please ? \draw[<-] (40:1.3*\R) arc (40:50:1.3*\R) node[midway,above right] {sens positif};
    – Med-Elf
    Jun 19 at 18:59
  • 1
    Of course: This draws an arc with a radius of 1.3 times the radius of the circle, from angle 40 degrees to angle 50 degrees, and put the arrow tip at the beginning. Then it puts a node at the middle of this arrow, but above and right of it with the desired text.
    – SebGlav
    Jun 19 at 19:02
  • Thank you so much
    – Med-Elf
    Jun 19 at 19:04
5

If it's supposed to be a quarter of a circle, I'd suggest actually drawing a quarter of a circle. The tangent can be drawn using relative polar coordinates, e.g. if you do ++(50:2cm) the ++ means the coordinate is relative to the previous coordinate on the path, and the : indicates that this is a polar coordinate of the form (<angle>:<distance>).

enter image description here

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}

% 
\begin{tikzpicture}[
  declare function={R=3cm;} % for convenience
  ]
  % draw first quadrant of circle
\draw (90:R)  arc[start angle=90,delta angle=-90, radius=R];

% draw tangent arrow using polar coordinates
\draw [-stealth] (60:R) coordinate [label=above:$M$] (M) -- ++(60-90:2cm) node[right] {$\vec{F}$};
% draw dashed line to center
\filldraw [densely dashed] (M) -- (0,0) circle[radius=0.03] node[below]  {$(\Delta)$};

% draw smaller arc and add nodes along it
\draw [-stealth] (55:R+0.5cm) arc[start angle=60,delta angle=-20, radius=R+0.5cm]
   node[very near start, above right] {foo}
   node[midway, above right] {bar};
\end{tikzpicture}
\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.