Como desenhar o diâmetro de um domínio no Tikz?

Como desenhar o diâmetro de um domínio no Tikz?

Estou escrevendo um pequeno documento sobre Teoria dos Conjuntos básicos e gostaria de incluir algumas imagens. A primeira definição que não consegui traçar para mim mesmo é adiâmetro.

Odiâmetrode um conjunto não vazioAdenO espaço euclidiano tridimensional é a maior distância entre qualquer par de pontos emA; |A|=e aí(|x-sim| :xesimestão dentroA).

O que eu gostaria Tikzde desenhar para mim é isto:

insira a descrição da imagem aqui

onde a forma deAé uma bolha 'aleatória'. exesimsão calculados, rotulados e unidos automaticamente. E então |A| é desenhado e rotulado abaixo (novamente automaticamente).

Alguém sabe como fazer isso? Desde já, obrigado.

Responder1

Uma ideia brutal: a decoração a seguir marcará noventa marcos ao longo do caminho determinado.

\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}

Agora você pode calcular os comprimentos dos quatro mil e cinco segmentos formados por esses pontos e ver quem é o mais longo.

informação relacionada