提克茲。建立與任意線垂直的線時出現問題

提克茲。建立與任意線垂直的線時出現問題

我很難畫一條垂直於圓半徑的線。如果畫一條垂直於同一半徑但位於該線另一側的線,我不會遇到相同的問題。我需要兩條線垂直於同一半徑。

\documentclass[tikz,border=12pt]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{angles,calc,math}

\begin{document}

\begin{tikzpicture}[>=stealth]
\coordinate (O) at (0,0);
\coordinate (P) at ($ ({2*cos(60)},{2*sin(60)}) $);
\draw[draw=black, fill opacity=0.2, text opacity=1] (O) circle (2);
\draw [black] (O) -- (P) coordinate (line2) node [midway, left] {$r$};
\draw [->,black] (P) -- ($(P)!1.5cm!-90:(line2)$) node [midway, right] {not perpendicular};
\draw [->,black] (O) -- ($(O)!1.5cm!-90:(line2)$) node [right] {perpendicular};
\end{tikzpicture}

\end{document}

答案1

歡迎!line2並且P一致。您希望line2以這樣的方式定義 到 的距離P

\documentclass[tikz,border=12pt]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[>=stealth]
\coordinate (O) at (0,0);
\coordinate (P) at (60:2);
\draw[draw=black, fill opacity=0.2, text opacity=1] (O) circle[radius=2cm];
\draw [black] (O) -- (P) coordinate[pos=0.5] (line2) node [midway, left] {$r$};
\draw [->,black] (P) -- ($(P)!1.5cm!90:(line2)$) node [right] {perpendicular};
\draw [->,black] (O) -- ($(O)!1.5cm!-90:(line2)$) node [right] {perpendicular};
\end{tikzpicture}
\end{document}

在此輸入影像描述

或者可以將座標放在 之前(P),在這種情況下,我們可以刪除pos=0.5,並且正如@frougon 善意地建議的那樣,更改座標的名稱。

\documentclass[tikz,border=12pt]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[>=stealth]
\coordinate (O) at (0,0);
\coordinate (P) at (60:2);
\draw[draw=black, fill opacity=0.2, text opacity=1] (O) circle[radius=2cm];
\draw [black] (O) -- coordinate(OP) (P)  node [midway, left] {$r$};
\draw [->,black] (P) -- ($(P)!1.5cm!90:(OP)$) node [right] {perpendicular};
\draw [->,black] (O) -- ($(O)!1.5cm!-90:(OP)$) node [right] {perpendicular};
\end{tikzpicture}
\end{document}

答案2

[turn]是另一種方式。

PS:我喜歡寫作乾淨的程式碼。這就是為什麼我沒有糾正OP的程式碼。

在此輸入影像描述

\documentclass[tikz,border=12pt]{standalone}
\begin{document}
\begin{tikzpicture}
\path 
(0,0) coordinate (O) (60:2) coordinate (P)
(O)--(P)--([turn]-90:1.5) coordinate (M) node[right] {$M$}
(P)--(O)--([turn]90:1.5) coordinate (N) node[right] {$N$};
\draw (P)--(O) node[midway,left] {$r$} circle(2); 
\draw[->] (P)--(M); \draw[->] (O)--(N);
\end{tikzpicture}
\end{document}

答案3

\documentclass{standalone} 
\usepackage{tkz-euclide}
\begin{document} 
\begin{tikzpicture}[thick]
\tkzDefPoint(0,0){A}
\tkzDefPoint({2*cosd(60)},{2*sind(60)}){P}
\tkzDrawCircle(A,P)
\tkzDefPointWith[orthogonal](A,P) 
\tkzDrawLine(A,tkzPointResult)
\tkzDefPointWith[orthogonal](P,A) 
\tkzDrawLine[add=1 and 0](P,tkzPointResult)
\tkzDrawSegment(A,P)
\end{tikzpicture}
\end{document}

在此輸入影像描述

請選擇任意點

\documentclass{standalone} 
\usepackage{tkz-euclide}
\begin{document} 
\begin{tikzpicture}
\tkzDefPoints{1/0/A}
\tkzDefRandPointOn[circle = center A radius 1 cm]
\tkzGetPoint{B}
\tkzDefPointWith[orthogonal](A,B)
\tkzDrawSegment(A,tkzPointResult)
\tkzDrawCircle(A,B)
\tkzDrawLine(A,tkzPointResult)
\tkzDefPointWith[orthogonal](B,A) \tkzGetPoint{b}
\tkzDrawLine[add=1 and 0](B,tkzPointResult)
\tkzDrawSegment(A,B)
\tkzMarkRightAngle[fill=gray!30,opacity=.6](A,B,b)
\end{tikzpicture}
\end{document}

在此輸入影像描述

答案4

其他方式

\documentclass[tikz,border=12pt]{standalone}
\begin{document}
\begin{tikzpicture}[>=stealth,declare function={R=2;k=-2;m=5/4;myangle=60;}] 
\path 
(0,0) coordinate (O)
({R*sin(myangle)},{R*cos(myangle)}) coordinate (P)
({R*sin(myangle) + k*R*cos(myangle)},{R*cos(myangle) - k*R*sin(myangle)} ) coordinate (Q);
 \draw (O)  circle[radius=R]; 
\draw[->] (P) -- (Q);
\draw[->] (O) -- ({m*R*cos(myangle)},- {m*R*sin(myangle)} );
\draw (P) -- (O) node[midway,left] {$r$}; 
\foreach \p in {O,P}
\draw[fill=black] (\p) circle (1.5pt);
\foreach \p/\g in {O/180,P/40}
\path (\p)+(\g:3mm) node{$\p$};
\end{tikzpicture}
\end{document}

在此輸入影像描述

相關內容