説明

説明
\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

  • PtoCaba b tに変換される3 つのオペランドが必要ですa*cos(t) b*sin(t)

  • atany 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 Θ)

関連情報