KTUG마당은 KTUG를 방문하는 모든 이용자가 대화를 나누고 소식을 전하는 곳입니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- Team Blog의 글을 이곳 게시판의 "정보글"로 모았습니다. Team blog는 기고자가 올린 글에 질문을 받는 부담을 줄이기 위하여 댓글을 허용하지 않았습니다. 그러나 이곳 게시판으로 모으면서 댓글을 달 수 있습니다. 게시물을 작성하실 때 댓글을 원하지 않으시면 댓글을 허용하시지 않으시기를 바랍니다. 또한 불필요한 소모성 댓글을 달지 않도록 주의하여 주시기를 바랍니다.
- TeX과 관련된 질문이나 답변은 QnA 마당을 이용하십시오. TeX과 관련된 질문은 지웁니다
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- 사용하는 편집기는 CKeditor입니다. 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
자유글 [풀이] 워크숍 숙제 (오후 첫 번째 시간 curve2e 관련)
2010.11.09 16:04
안녕하십니까?
워크숍 숙제를 어제까지 내라고 했는데 안 내신 분들은 조금 이 게시물을 보고 찔리리라 믿습니다.
(농담입니다. ^^;)
여하튼 많은 분들께서 참석해주셔서 근래 보기 드물게 성황을 이룬 워크숍이었다고 생각합니다.
행사를 기획하고 준비해주신 조인성 교수님과 TnXTeX을 마련해주신 김강수 부회장님, 그리고 사회와 강의를 맡아 알차게 진행해주신 다른 KTS 임원진 여러분께도 감사의 말씀 드립니다.
또 당일날 쥐도새도 모르게 ko.TeX Live 2010을 빌드하여 올려주신 이기황 교수님께도 감사의 말씀 전합니다.
===
cruve2e 패키지와 관련하여 사인/ 코사인 그래프를 숙제로 내드렸는데
대략 첨부파일에 소개된 정도로 숙제를 처리하면 어떨까 싶습니다.
===
그럼 이만 물러갑니다.
p.s.
풀이는 올려드립니다만 과제는 계속 제출하셔도 좋습니다. 후기도 함께요!!!
Happy TeXing!
댓글 8
-
ischo
2010.11.10 03:49
-
당근
2010.11.10 06:30
그래프를 그리는데는 PSTricks가 진리이긴 한데 어느정도 원하는 그래프를 그릴 정도로 익숙해 지는데 걸리는 시간과 노력이 너무 커서 사용하기 망설여지네요. LaTeX을 시작하면서 느낀 좌절과는 차원이 다른 수준의 진입장벽이 문제입니다...ㅜ.ㅜ
-
ischo
2010.11.10 16:34
위에 pstricks를 소개한 것의 핵심은 "텍소스에 cos(x), sin(x)를 넣으면" 그래프를 정확하게 그려 준다는 것입니다.
그러니까 "pstricks를 쓰자"는 의도는 아니었고요, 텍소스에서 2*x+1, (x-1)^3, ln(x), EXP(x), sqrt(x), tan(x) 등의 함수를 넣어 그 그래프를 그릴 수도 있으니, "정확한 그림이 필요하다면" 이런 방법을 쓸 수도 있음을 소개한 것입니다.
혹시 함수를 넣어 그래프를 그리는 데 관심이 있는 분들이 있다면, (코드가 몇 줄 늘어나겠지만) 좀 더 초보적이고 직관적으로 위 그림을 그리는 예를 적어두겠습니다. 단, 지금은 바쁘니 나중에^^
tikz 등 다른 좋은 패키지를 쓰시고요, pstricks는 보완적으로 사용하실 수 있을 겁니다.
-
ischo
2010.11.10 23:37
아래는 pstricks로 싸인/코싸인 그래프를 그리는 (쉬운^^) 코드입니다.
algebraic 옵션을 제외하고는 pstricks 매뉴얼 처음에 나오는 기본기능만을 사용하였습니다.
Progress님 정답 파일 Do_you_Know_Curve2e-Sandol.pdf (516.9KB)(39)) 6--7쪽의 순서를 따라 썼습니다.
정확한 함수플로팅이 보완적으로 필요한 분에게 도움이 되기를 바랍니다.
%% \usepackage{pst-func}
\psset{unit=1.5cm,algebraic} % unit default는 1cm
% 보통의 함수 표현으로 편리하게 쓰기 위해 algebraic 옵션을 넣음. (나머지는 설명 불필요)
\begin{pspicture}(8,4)(0,-1.5)
\psline{->}(0,-1.5)(0,2) % y축 with 화살표{->} %% (1)
\psline{->}(0,0)(7.5,0) % x축 with 화살표{->} %% (2)
\rput(7.5,-.2){$\theta$} % x축 라벨
\rput[r](-0.1,1){$1$} % y축 1
\rput[r](-0.1,0){$0$} % y축 0
\rput[r](-0.1,-1){$-1$} % y축 -1
\rput(3.14,-0.2){$\pi$} % 라벨 pi
\rput(6.28,-0.2){$2\pi$} % 라벨 2pi
\psset{linecolor=lightgray} % 칼라 변경
\psline(0,1)(6.28,1) % 그래프 상단 회색선
\psline(0,-1)(6.28,-1) % 그래프 하단 회색선
\psset{linecolor=red} % 칼라 변경
\psplot{0}{6.28}{cos(x)} % 빨간 cosine 그래프 %% (3)
\psset{linecolor=blue} % 칼라 변경
\psplot{0}{6.28}{sin(x)} % 파란 sine 그래프 %% (4)
\psset{linecolor=black} % 칼라 변경
\psdots(0,1)(1.57,0)(3.14,-1)(4.71,0)(6.28,1) % 빨간 cosine 그래프 점들
\psdots(0,0)(1.57,1)(3.14,0)(4.71,-1)(6.28,0) % 파란 sine 그래프 점들
\rput[l](0.1,1.2){$\cos\theta$} % cos 함수 라벨
\rput[l](1.65,1.2){$\sin\theta$} % sin 함수 라벨
\end{pspicture}
====
Exercise: 위 코드에서 축은 (1)과 (2) 그래프는 (3) 또는 (4)로 그림.
좀 더 연습하고 싶은 분들은 다음 여섯 줄 코드로 함수를 바꿔가며 그리기 연습 가능.
%%\usepackage{pst-func}
\begin{pspicture}[showgrid=true](-5,-5)(10,10)
%% 배경의 보조 눈금을 끄려면 showgrid=false
\psset{algebraic,plotpoints=200}
%% 익숙한 함수 표현 쓰려면 algebraic 옵션을 주면 됨
%% 그래프가 거칠다 싶을 때 더 촘촘히 찍으려면 plotpoints 숫자를 더 크게 함
\psline{->}(-5,0)(10,0) % x축
\psline{->}(0,-5)(0,10) % y축
\psplot{-3}{9}{cos(x)} % x=-3에서 9까지 함수 그래프 그리기
%% cos(x) 대신에 다른 함수를 넣으면서 연습
%% 5-x, x^2, -0.5*(x-3)^2+5, (x-1)*(x+1)*(x-3), EXP(x),1.5^x, (x-1)^2/(x+1), tan(x) 등
%% sqrt(x), 2*sqrt(x^-1), 3*x^(1/3), ln(x), ln(x)/ln(10) 등을 그릴 때는 x값에 주의하시고요...
\end{pspicture}
====
후기: 워크숍 숙제와 답변 등에 관한 논의는 사인/코사인 그래프를 어느 것으로 그리는 것이 효율적인지를 말하고자 하는 것이 아니라
이를 통해 curve2e를 배우고 익숙해지는 것이 목적인 것으로 이해하고 있습니다. Happy TeX'ing! -
karnes
2010.11.11 00:25
천상 저도...
아래는 tikz로 사인과 코사인 함수를 그리는 쉬운(^^) 코드입니다.
\begin{tikzpicture}[domain=-4:4]
%%% draw axis
\draw[very thin,color=gray] (-4.1,-2.1) grid (4.1,2.1);
\draw[->] (-4.2,0) -- (4.2,0) node[right] {$x$}; \draw[->] (0,-2.2) -- (0,2.2) node[right] {$f(x)$};
%%% draw sine
\draw[color=blue] plot (\x,{sin(\x r)}) node[right] {$\sin x$};
%%% draw cosine
\draw[color=red] plot (\x,{cos(\x r)}) node[left] {$\cos x$};
\end{tikzpicture}
====
이 샘플의 목적 또한, tikz에서도 plot (\x,{sin(\x r)}) 과 같이 입력함으로써 사인 그래프를 바로 얻을 수 있다는 것을 보이는 것입니다. curve2e나 pstricks에 비교하여 어떤 것이 더 낫다는 것을 주장하려는 것은 전혀 아닙니다.
-
mltsr
2010.11.10 12:27
저 같은 경우는 몇년전엔 PSTricks을 이용했었는데.요즘엔 Tikz 만 쓰게 되더군요.
-
progress
2010.11.10 13:12
이태훈님이 정답입니다. ^^
curve2e는 pstricks나 pgf/TikZ에 비해 기능은 훨씬 떨어집니다.
근데 기능은 떨어지지만 수학좌표에 익숙한 사람들이 그냥 조금 더 직관적으로 그리고자할 때.
그래프의 '개형' 따위를 그리는 정도에는 괜찮은 듯.
-
DohyunKim
2010.11.14 10:28
저도 참가해 봅니다. pgfplots를 이용했습니다. 위 그림과 최대한 비슷하게 만들자니 각종 옵션이 많이 들어가네요.
\documentclass{minimal} \usepackage{pgfplots} \pgfplotsset{ compat=1.3, width=14cm } \begin{document} \begin{tikzpicture} \begin{axis}[ axis equal=true, % 가로/세로 척도를 일치시킴 axis equal image=true, % 전체 이미지를 가로/세로 척도에 맞춘다 axis x line=middle, % x축은 이미지 가운데 둔다 axis y line=left, % y축은 이미지 왼쪽에 둔다 xmin=0, xmax=7.5, % x축 범위 ymin=-1.8, ymax=1.8, % y축 범위 ymajorgrids=true, % 그리드는 y축으로 주요 그리드만 xtick={3.1416, 6.2832}, xticklabels={$\pi$, $2\pi$}, xlabel=$\theta$, ] \addplot+[ domain=0:2*pi, mark=none, line width=1pt, smooth, ] { sin(deg(x)) } node [above=9pt] {$\sin\theta$} ; \addplot[ only marks, mark=*, mark options={fill=blue,draw=blue}, ] coordinates { (.5*pi,1) (pi,0) (1.5*pi,-1) (2*pi,0) }; \addplot[ domain=0:2*pi, mark=none, line width=1pt, smooth, red, ] { cos(deg(x)) } node [above=1pt] {$\cos\theta$} ; \addplot[ only marks, mark=*, mark options={fill=red,draw=red}, ] coordinates { (.5*pi,0) (pi,-1) (1.5*pi,0) (2*pi,1) }; \end{axis} \end{tikzpicture} \end{document}
숙제에서 요구하는 방법은 아니지만,
정확한 그림이 필요할 때에는 pstricks를 이용하는 것도 방법 중 하나...
\documentclass{article}
\usepackage{pst-func}
\begin{document}
%\psset{unit=1.5} %just for scale
\begin{pspicture}[showgrid=false](0,-2)(7.5,2)
\psaxes[dx=\psPi,trigLabels=true]{->}(0,0)(0,-1.5)(7.5,2)[$\theta$,-90][~,180]
\psplot[algebraic,plotpoints=500,linecolor=blue]{0}{\psPiTwo}{sin(x)}
\psplot[algebraic,plotpoints=500,linecolor=red]{0}{\psPiTwo}{cos(x)}
\uput[ur](0,1){$\cos\theta$}
\uput[ur](\psPiH,1){$\sin\theta$}
\end{pspicture}
\end{document}