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 Tikz
de desenhar para mim é isto:
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.