如何让node的sloped角度随着弧线转动?

发布于 2021-10-21 12:30:41

想在一段倾斜的椭圆弧线上画切线,但是node的sloped这个选项在去掉rotated=45的时候,还是很正常的(如图1)。
但是当加上rotate=45这个选项之后,情况就不对了(见图2)。
请问这个问题怎么解决?

\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\begin{document}
    \begin{tikzpicture}
        \draw [rotate=45] (2,0) arc (0:180:2 and 1)
            node[
                pos = 0.8,    % 设置切点在曲线上的位置
                sloped,    % 设置node按曲线斜率旋转
                anchor = south west,    % node的锚点设为左下角,即以此为切点
                fill opacity = 0.4,    % 将node填充为灰色半透明图形,与切线绘制无关
                fill = gray    % 将node填充为灰色半透明图形,与切线绘制无关
            ] (N) {};
        % 绘制切线(红色)
        \draw[red] (N.south west) -- (N.south east);
        % 绘制法线(蓝色)
        \draw[blue] (N.south west) -- (N.north west);
    \end{tikzpicture}
\end{document}

image.png
图1
image.png
图2

查看更多

关注者
0
被浏览
1.2k
越来越少
越来越少 2021-10-21
这家伙很懒,什么也没写!

给 node 加 transform shape 选项。

2 个回答
感知+认知+决策+控制
LaTeX业余爱好者,对LaTeX绘图方面比较感兴趣,欢迎各位大佬多多交流!

draw[rotate=45]表示你把椭圆的线旋转了,但是切线没动,要想相对静止,应该考虑整体!

\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\usepackage{xcolor}
\begin{document}
    \begin{tikzpicture}
    \foreach \N in {0,3,...,360}{
        \draw  (2,0) arc (0:\N:2 and 1)
            node[
                pos = 0.8,    % 设置切点在曲线上的位置
                sloped,    % 设置node按曲线斜率旋转
                anchor = south west,    % node的锚点设为左下角,即以此为切点
                fill opacity = 0.4,    % 将node填充为灰色半透明图形,与切线绘制无关
                fill = gray    % 将node填充为灰色半透明图形,与切线绘制无关
            ] (N) {};
        % 绘制切线(红色)
        \draw[red] (N.south west) -- (N.south east);
        % 绘制法线(蓝色)
        \draw[blue] (N.south west) -- (N.north west);
        }
    \end{tikzpicture}
\end{document} 

fig1.jpg

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览