Tikz でドメインの直径を描画するにはどうすればいいですか?

Tikz でドメインの直径を描画するにはどうすればいいですか?

私は集合論の基礎に関する短い文書を書いているのですが、いくつかの画像を含めたいと思っています。私が自分で描くことができなかった最初の定義は、直径

直径空でない集合の次元ユークリッド空間は、任意の2点間の最大距離である。; ||=sup(|バツ-ええ| :バツそしてええにあります)。

Tikz私が描きたいのはこれです:

ここに画像の説明を入力してください

形状はランダムな塊です。そしてバツそしてええ自動的に計算され、ラベルが付けられ、結合されます。そして || が下に描画され、ラベルが付けられます (これも自動的に)。

誰かこれをどうやってやるか知っていますか? よろしくお願いします。

答え1

残酷なアイデア: 次の装飾は、指定されたパスに沿って 90 個のマイルストーンをマークします。

\documentclass[border=9,tikz]{standalone}
\usetikzlibrary{calc,decorations}

\pgfdeclaredecoration{mark milestone}{initial}{
    \state{initial}[width=0pt,next state=mark]{
        \xdef\markmilestoneindex{0}
        \xdef\markmilestonename{\csname tikz@fig@name\endcsname}
        \pgfmathsetmacro\markmilestonesep{\pgfdecoratedpathlength/90}
        \xdef\markmilestonesep{\markmilestonesep}
    }
    \state{mark}[width=\markmilestonesep pt]{
        \coordinate(\markmilestonename-\markmilestoneindex);
        \pgfmathtruncatemacro\markmilestoneindex{\markmilestoneindex+1}
        \xdef\markmilestoneindex{\markmilestoneindex}
    }
    \state{final}{
        \pgftransformshift{\pgfpointdecoratedpathlast}
        \coordinate(\markmilestonename-\markmilestoneindex);
    }
}

\begin{document}
    \begin{tikzpicture}
        \draw[rounded corners,
              postaction={name=irreshape,decorate,decoration=mark milestone}]
            (0:2)foreach\i in{1,...,11}{--(\i*30:3+rnd)}--cycle
            [sharp corners]; %https://tex.stackexchange.com/questions/38989/
        \draw foreach\i[evaluate={\a=\i*4-180};]in{0,...,90}{
            (irreshape-\i)circle(.4pt)node[anchor=\a]{\tiny\i}
        };
    \end{tikzpicture}
\end{document}

これで、これらの点によって形成される 4,000 と 5 の線分の長さを計算し、誰が最も長いかを確認できます。

関連情報