KnezZz
KnezZz
这家伙很懒,什么也没写!

注册于 4月前

回答
2
文章
0
关注者
0

\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{tikz}
\usetikzlibrary{calc}  % 为了用 \pgfmathsetmacro

\begin{document}
\begin{center}
    
\begin{tikzpicture}[scale=1]
  % ——— 斜投影参数 ———
  % 定义 y 轴对 x 的投影系数 a 和对 y(竖直方向)的系数 b
  \def\a{0.5} % y→x 的投影: (x,y,z)→x + a·y
  \def\b{0.5} % y→y 的投影: (x,y,z)→b·y + z

  % ——— 圆柱参数 ———
  \def\R{2}   % 半径
  \def\H{2}   % 高度一半

  % z 轴标注端点
  \pgfmathsetmacro{\zbot}{-\H-0.5} 
  \pgfmathsetmacro{\ztop}{ \H+0.5}

  % ——— 顶面圆(z=+H) ———
  \draw[thick,fill=blue!10,opacity=0.5]
    plot[domain=0:360,samples=100]
      ({(\R*cos(\x)+\a*\R*sin(\x)) }, {(\b*\R*sin(\x)+\H) })
    -- cycle;

  % ——— 底面圆(z=−H) ———
  \draw[thick,fill=blue!10,opacity=0.5]
    plot[domain=0:360,samples=100]
      ({(\R*cos(\x)+\a*\R*sin(\x)) }, {(\b*\R*sin(\x)-\H) })
    -- cycle;

  % ——— 侧面母线(仅示意四条) ———
  \foreach \t in {0,90,180,270}{
    \pgfmathsetmacro{\xx}{\R*cos(\t)}
    \pgfmathsetmacro{\yy}{\R*sin(\t)}
    \draw[blue!60]
      ({(\xx+\a*\yy) }, {(\b*\yy-\H) }) -- 
      ({(\xx+\a*\yy) }, {(\b*\yy+\H) });
  }

  % ——— 三个坐标轴 ———
  % x 轴
  \draw[->] (0,0) -- (3,0) node[below] {x轴(转轴)};
  % y 轴
  \draw[->] (0,0) -- ({\a*3},{\b*3}) node[above left] {$y$};
  % z 轴(转轴)
  \draw[->,thick] (0,\zbot ) -- (0,\ztop ) node[right] {$z$};

  % ——— 半径 R 标注 ———
  \draw[red,thick,->] (0,0) -- (-\R ,0) node[below right] {$R$};

\end{tikzpicture}

\end{center}
\end{document}

发布
问题