다음을 사용하여 손으로 그리는 원에 가까운 것을 그리는 더 나은 접근 방식을 원합니다 tikz
.
\documentclass{article}
\pagestyle{empty}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (C) at (2in, 0);
\coordinate (B) at ($(C)!1in!-90:(A)$);
\draw (A) -- (C) -- (B) -- cycle;
\coordinate (A/u) at ($(A) + (30:1em)$);
\coordinate (A/d) at ($(A) + (-10:1em)$);
\coordinate (A/x) at ($(A) + (120:2em)$);
\coordinate (A/y) at ($(A) + (-120:2em)$);
\draw[line width=1pt] (A/d) .. controls (A/x) and (A/y) .. (A/u);
\end{tikzpicture}
\end{document}
나는 알고있어손으로 그린 선 시뮬레이션. 흔들리는 효과는 좋지만 끝이 서로 맞지 않는 원과 비슷한 것을 원합니다.
답변1
의 도움으로손으로 그린 선 시뮬레이션, 더 나은 결과를 얻는 것 같습니다 (빨간색선) 타악기 decoration=penciline
와 함께 사각형 모양을 사용하는 이 특정 응용 프로그램의 경우 Alain Matthes의 경우 원이 더 좋습니다 \freedraw
.
암호:
\documentclass{article}
\pagestyle{empty}
\usepackage{tikz}
\usetikzlibrary{calc,decorations.pathmorphing,patterns,shapes}
%% https://tex.stackexchange.com/questions/39296/simulating-hand-drawn-lines: percusse
\pgfdeclaredecoration{penciline}{initial}{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance,auto corner on length=1mm,]{
\pgfpathcurveto%
{% From
\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}
{\pgfdecorationsegmentamplitude}
}
{% Control 1
\pgfmathrand
\pgfpointadd{\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
{\pgfqpoint{-\pgfdecorationsegmentaspect\pgfdecoratedinputsegmentremainingdistance}%
{\pgfmathresult\pgfdecorationsegmentamplitude}
}
}
{%TO
\pgfpointadd{\pgfpointdecoratedinputsegmentlast}{\pgfpoint{0.5pt}{1.5pt}}
}
}
\state{final}{}
}
%% https://tex.stackexchange.com/questions/39296/simulating-hand-drawn-lines: Alain Matthes
\pgfdeclaredecoration{free hand}{start}
{
\state{start}[width = +0pt,
next state=step,
persistent precomputation = \pgfdecoratepathhascornerstrue]{}
\state{step}[auto end on length = 3pt,
auto corner on length = 3pt,
width=+2pt]
{
\pgfpathlineto{
\pgfpointadd
{\pgfpoint{2pt}{0pt}}
{\pgfpoint{rand*0.15pt}{rand*0.15pt}}
}
}
\state{final}
{}
}
\tikzset{free hand/.style={
decorate,
decoration={free hand}
}
}
\def\freedraw#1;{\draw[free hand] #1;}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (C) at (1in, 0);
\coordinate (B) at ($(C)!1in!-90:(A)$);
\draw (A) -- (C) -- (B) -- cycle;
\coordinate (A/u) at ($(A) + (30:1em)$);
\coordinate (A/d) at ($(A) + (-10:1em)$);
\coordinate (A/x) at ($(A) + (120:2em)$);
\coordinate (A/y) at ($(A) + (-120:2em)$);
\begin{scope}[decoration=penciline]
\draw[thick, fill=blue!25, fill opacity=.25, draw=red, decorate] ($(A)+(-0.1cm,-0.1cm)$) rectangle (0.1cm,0.2cm);
\draw[thick, draw=brown, radius=0.1cm, decorate] (B) circle (0.15cm);
\draw[thick, draw=blue, x radius=0.15cm, y radius=0.19cm, rotate=30, shape=circle, decorate,] (C) circle {};
\node [above left] at (B) {decoration=penciline};
\end{scope}
\end{tikzpicture}
\hspace*{0.3cm}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (C) at (1in, 0);
\coordinate (B) at ($(C)!1in!-90:(A)$);
\draw (A) -- (C) -- (B) -- cycle;
\coordinate (A/u) at ($(A) + (30:1em)$);
\coordinate (A/d) at ($(A) + (-10:1em)$);
\coordinate (A/x) at ($(A) + (120:2em)$);
\coordinate (A/y) at ($(A) + (-120:2em)$);
\freedraw[thick, draw=blue] ($(A)+(-0.1cm,-0.1cm)$) rectangle (0.15cm,0.2cm);
\freedraw[thick, fill=blue!25, fill opacity=.25, draw=red] (B) circle [radius=0.2cm];
\freedraw[thick, fill=blue!25, fill opacity=.25, draw=red, x radius=0.15cm, y radius=0.19cm, rotate=30, shape=circle,] (C) circle {};
\node [above left] at (B) {\textbackslash freedraw};
\end{tikzpicture}
\end{document}
답변2
운전을 잘 몰라서 tikz
문법이 불규칙하더라도 양해 부탁드립니다. 하지만 제가 한 일은 \mathcal{O}
사용자가 정의할 수 있는 방식으로 그것을 잡아 늘이고 회전시키는 것이었습니다.
\documentclass{article}
\pagestyle{empty}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcommand\handoh[3][0]{%
\scalebox{#2}[#3]{\raisebox{1pt}{\kern3pt\rotatebox{#1}{%
\kern-4.5pt\raisebox{-2pt}{$\mathcal{O}$}\kern-4pt}}\kern2pt}%
}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (C) at (2in, 0);
\coordinate (B) at ($(C)!1in!-90:(A)$);
\draw (A) -- (C) -- (B) -- cycle;
\coordinate (A/u) at ($(A) + (30:1em)$);
\coordinate (A/d) at ($(A) + (-10:1em)$);
\coordinate (A/x) at ($(A) + (120:2em)$);
\coordinate (A/y) at ($(A) + (-120:2em)$);
\node (D) [label=left:{\textbackslash handoh[160]\{2.5\}\{3\}}]
at (A) {\handoh[160]{2.5}{3}};
\node (E) [label=left:{\textbackslash handoh[45]\{1.3\}\{1.7\}}]
at (B) {\handoh[45]{1.3}{1.7}};
\node (F) [label=below:{\textbackslash handoh[-70]\{2.5\}\{1.5\}}]
at (C) {\handoh[-70]{2.5}{1.5}};
\end{tikzpicture}
\end{document}
답변3
원의 반대편에 또 다른 중간점이 없으면 원하는 실제 원형 모양을 얻기가 어렵습니다. 이 MWE는 다른 중간점을 추가하고 제어점을 약간 조정하여 다소 원형, 다소 불규칙한 모양을 갖습니다.
사실, "흔들리는" 효과는 직선형 선분에 좋지만 대부분의 경우 작은 원은 매우 부드러운 선이며 직사각형인 경우가 많습니다.
MWE:
\documentclass{article}
\pagestyle{empty}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (C) at (2in, 0);
\coordinate (B) at ($(C)!1in!-90:(A)$);
\draw (A) -- (C) -- (B) -- cycle;
\coordinate (A/u) at ($(A) + (40:.8em)$);
\coordinate (A/d) at ($(A) + (-20:1.1em)$);
\coordinate (A/l) at ($(A) + (180:.7em)$);
\coordinate (A/x) at ($(A) + (50:1em)$);
\coordinate (A/y) at ($(A) + (120:1.2em)$);
\coordinate (A/v) at ($(A) + (-120:1.6em)$);
\coordinate (A/w) at ($(A) + (-30:1.8em)$);
\draw[line width=1pt] (A/d) .. controls (A/x) and (A/y) .. (A/l) .. controls (A/v) and (A/w) .. (A/u);
\end{tikzpicture}
\end{document}
다음을 제공합니다: