zhb学了一个晚上,又完成了一项作业,提供了代码。
先放图:
代码和相关注释笔记如下:
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\usepackage{bm}
\begin{document}
% 观察视角,沿着x轴转70度,沿着z轴转60度,默认从z正方向向下看,x轴在正右
\tdplotsetmaincoords{70}{60}
\begin{tikzpicture}[tdplot_main_coords,tight/.style={inner sep=0.4}]%定义tight=inner sep=0.4
\usetikzlibrary{angles,quotes}
%定义一个坐标原点
\coordinate (O) at (0,0,0);
%定义另一个坐标原点
\coordinate (O1) at (0,0,-5);
% \draw (坐标点)--(另一个坐标点) 画直线
\draw (-3.5,0,0)--(3.5,0,0);
\draw (0,-3.5,0)--(0,3.5,0);
% \draw [带箭头直线](坐标点)--(另一个坐标点)node[线左侧]{文本}
\draw [->] (0,0,-3)--(0,0,1.5)node[left]{$q$};
% \draw (圆心) circle (半径mm);默认在XoY平面画
\draw (O) circle (3);
\draw [line width=1]%线宽1mm
(O)edge[-stealth,"$\bm n_\perp$",tight](90:3)edge[stealth-,"$\bm a$",tight,auto=right](O1)
(40:3) coordinate (A) edge[stealth-,"$\bm m$"near start,tight,auto=right](O)edge[stealth-,"$\bm w$",tight](O1)
(0:3) coordinate (B) edge [stealth-,"$\bm n$"near start,,tight](O)edge[stealth-,"$\bm v$",tight,auto=right](O1)
pic [draw,"\scriptsize$40^{\circ}$",angle radius=20, angle eccentricity=1.3] {angle=B--O--A}
;
%(起点)edge[参数](终点极坐标90度半径3mm)edge[参数]终点
%(起点极坐标40度半径3mm) coordinate (坐标原点定义为A)
% pic [draw,"文本",圆弧离圆心半径,文字距离]{角的三个坐标}
% \bm 斜体加粗;tight在第七行已被预定义;auto=文字在线方位,默认左侧;near 起点或终点
% \node [排版=中间对齐] at (坐标点) {文本}
\node [align=center] at (0,-2,-2.5) {$v=a+n$\\$w=qvq^*$\\$w=a+m$};
\end{tikzpicture}
\end{document}