静态图像

静态图像

我一直在使用 tikz 绘制一些图片,想知道我是否可以说出一个数字。

例如,我选取圆上一个$A$具有位置角的点,以及一条过该点且具有方向角(垂直于位置矢量)的 $\alpha=45\degree$线。$\beta=\alpha+90\degree=135\degree$

后来我把重点改为$A$$\alpha=60\degree$然后$\beta=150 \degree$

现在我手动更改两个角度。如果我可以命名第一个角度$\alpha$和第二个角度$\beta$,那么我只需要进行$\alpha$: $\beta$相应的更改即可。

有没有办法做到这一点,命名一个数字?谢谢!

答案1

您还可以tikzmath使用math tikz图书馆

    \documentclass[border=1cm,multi]{standalone}
\usepackage{tikz}
\usetikzlibrary{math,angles,quotes}

\begin{document}
\tikzmath{
\R=2; % circle radius
\d=3; % distance between A and B
\a1=30; % angle alpha
\a2=\a1 + 90; % angle beta
}
\begin{tikzpicture}
\draw (0,0)circle[radius=\R cm];
\path (\a1:\R) coordinate[label=\(A\)] (A) +(\a2:\d)coordinate[label=\(B\)](B);
\draw (A)--(B);

\coordinate(O) at(0,0);
\coordinate(x) at(1,0);
\draw(x)--(O)--(A);
\pic[draw,"\(\alpha=\a1\)",angle eccentricity=2.25]{angle=x--O--A};

\end{tikzpicture}
\tikzmath{
\R=2; % circle radius
\d=3; % distance between A and B
\a1=60; % angle alpha
\a2=\a1 + 90; % angle beta
}
\begin{tikzpicture}
\draw (0,0)circle[radius=\R cm];
\path (\a1:\R) coordinate[label=\(A\)] (A) +(\a2:\d)coordinate[label=\(B\)](B);
\draw (A)--(B);

\coordinate(O) at(0,0);
\coordinate(x) at(1,0);
\draw(x)--(O)--(A);
\pic[draw,"\(\alpha=\a1\)",angle eccentricity=2.25]{angle=x--O--A};

\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

您可以使用insert path来插入大致相同的路径。这在 MWE 中有说明,其中大部分是插图。

\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}[insert points/.style={insert path={%
(#1:1) coordinate(A) (#1+90:1) coordinate(B)}}]
% with 45 degrees
\path[insert points=45];
% only illustration
\draw circle (1); 
\foreach \X in {A,B}
{\node[fill,inner sep=1pt,label=right:\X] at (\X){};}
% second example (shifted to avoid interference)
\begin{scope}[xshift=4cm]
% with 60 degrees
\path[insert points=60];
% only illustration
\draw circle (1);
\foreach \X in {A,B}
{\node[fill,inner sep=1pt,label=right:\X] at (\X){};}
\end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

如果我理解正确的话,您需要以一定的角度在圆上放置一个点 A,然后将一个点放置在与该 90 度半径垂直的方向上。

然后你希望这两个角度是相对的。可以使用 LaTeX 宏定义一个常量\def,使用库定义另一个常量,calc该库允许将一个点相对于具有给定角度的两个其他点放置(参见手册 3.0.1a 第 143 和 144 页)

以下是一个例子:

捕获

\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{calc}
\begin{document}
\def\alpha{45}

\begin{tikzpicture}[]
\draw (0,0)circle (2cm)circle(1pt);
\draw  (\alpha:2) coordinate(A)circle(1pt);
\draw ($(A)!1!-90:(0,0)$)--($(A)!1!90:(0,0)$);
\end{tikzpicture}

\end{document}

作为圣诞礼物,一段小动画:

动画片

\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{calc}
\begin{document}
\def\alpha{40}
\foreach \alpha in {0,5,...,180}{
\begin{tikzpicture}[]
\useasboundingbox (-3,-3) rectangle (3,3);
\draw (0,0)circle (2cm)circle(1pt);
\draw  (\alpha:2) coordinate(A)circle(1pt);
\draw ($(A)!1!-90:(0,0)$)--($(A)!1!90:(0,0)$);
\end{tikzpicture}
}
\end{document}

答案4

PSTricks 解决方案仅用于娱乐目的。

静态图像

\documentclass[pstricks,12pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\pspicture(8,8)
\pstGeonode(4,4){O}([nodesep=2,angle=60]O){A}([offset=-2]{O}A){X}([offset=2]{O}A){Y}
\pstCircleOA{O}{A}
\psline(X)(Y)
\endpspicture
\end{document}

在此处输入图片描述

动画

\documentclass[pstricks,12pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\foreach \i in {0,30,...,330}{%
\pspicture(8,8)
\pstGeonode(4,4){O}([nodesep=2,angle=\i]O){A}([offset=-2]{O}A){X}([offset=2]{O}A){Y}
\pstCircleOA{O}{A}
\psline(X)(Y)
\endpspicture}
\end{document}

在此处输入图片描述

相关内容