\documentclass[border=15pt,pstricks,12pt]{standalone}
\usepackage{pst-eucl,pst-calculate}
\begin{document}
\degrees[36]
\begin{pspicture}[showgrid](-3,-3)(4,4)
\def\a{2}
\def\xa{\pscalculate{\a*cos(5)}}
\def\ya{\pscalculate{(\a/4)*sin(5)}}
\psellipse(0,0)(+\a,\a/4)
\pstGeonode[PosAngle=-45](\xa,\ya){A}
\pscircle{2}
\multido{\i=0+1}{36}{\psdot(2;\i)}
\end{pspicture}
\end{document}
질문: 점이 타원에 속하도록 지정하는 방법은 무엇입니까? P\s: 구문(r;angle)은 원에 속하는 점을 지정하는 데 도움이 됩니다.
답변1
x = a cos t
y = b sin t
은 타원의 매개변수화이지만 t
위치 벡터의 각도와 일치하지 않습니다 (x,y)
. Θ
위치 벡터의 각도라고 하자 . 그것을 보여주는 것은 쉽습니다 tan t = (a sin Θ) / (b cos Θ)
.
나머지는 자명할 것이다. :-)
\documentclass[border=15pt,pstricks,12pt]{standalone}
\usepackage{pst-eucl,pst-calculate}
\begin{document}
\foreach \THETA in {60,150,240,330}{%
\begin{pspicture}[showgrid](-4,-4)(4,4)
\psline[linecolor=red](3;\THETA)
\psellipse(0,0)(3,2)
\qdisk(!3 2 2 copy exch \THETA\space sin mul exch \THETA\space cos mul atan PtoCab){2pt}
\end{pspicture}}
\end{document}
설명
3 2 2 copy
생산하다3 2 3 2
exch
생산하다3 2 2 3
\THETA\space sin mul
생산하다3 2 2 3*sin(Θ)
exch
생산하다3 2 3*sin(Θ) 2
\THETA\space cos mul
생산하다3 2 3*sin(Θ) 2*cos(Θ)
atan
생산하다3 2 t
PtoCab
생산하다x y
PtoCab
a b t
로 변환될 3개의 피연산자가 필요합니다a*cos(t) b*sin(t)
.atan
y x
사분면 종속 각도를 생성하려면 2개의 피연산자가 필요합니다 .
최종 릴리스
\documentclass[border=15pt,pstricks]{standalone}
\usepackage{pst-eucl}
\pstVerb{/P2EC {3 copy sin 3 -1 roll mul 3 -1 roll cos 3 -1 roll mul atan PtoCab} bind def}
\begin{document}
\foreach \THETA in {60,150,240,330}{%
\begin{pspicture}[showgrid](-4,-4)(4,4)
\psline[linecolor=red](3;\THETA)
\psellipse(0,0)(3,2)
\qdisk(!3 2 \THETA\space P2EC){2pt}
\end{pspicture}}
\end{document}
.P2EC
a b Θ
a*b*cos Θ/sqrt(a^2 * sin^2 Θ + b^2 * cos^2 Θ) a*b*sin Θ/sqrt(a^2 * sin^2 Θ + b^2 * cos^2 Θ)