
Я хотел бы воссоздать следующее изображение:
Источник:https://de.wikipedia.org/wiki/Datei:Feuerbachkreis_radius.svg
У меня есть все, кроме горизонтальных линий. Для их создания, я думаю, самым простым вариантом будет смещение начала координат. Как это сделать?
Мой код
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all}
\usetikzlibrary{shapes, calc, decorations}
\usepackage{amsmath,amssymb}
\usepackage{helvet}
\usepackage[eulergreek]{sansmath}
\begin{document}
\begin{preview}
\begin{tikzpicture}[very thick,font=\sansmath\sffamily]
\tkzDefPoint(0,1){A}
\tkzDefPoint(4,0){B}
\tkzDefPoint(3,6){C}
\tkzLabelPoints[below left,font=\sansmath\sffamily](A)
\tkzLabelPoints[below right,font=\sansmath\sffamily](B)
\tkzLabelPoints[above,font=\sansmath\sffamily](C)
% Draw polygon
\tkzDrawPolygon[thick,fill=gray!10](A,B,C)
% Get mid points
\tkzDefMidPoint(A,B) \tkzGetPoint{F}
\tkzDefMidPoint(A,C) \tkzGetPoint{E}
\tkzDefMidPoint(B,C) \tkzGetPoint{D}
\tkzDefCircle[circum,/tikz/overlay](D,E,F)\tkzGetPoint{Icircle}\tkzGetLength{rIN}
\tkzDrawCircle[R](Icircle,\rIN pt)
% Get 'Hoehe'
\tkzInterLC[/tikz/overlay](B,C)(A,B)\tkzGetPoints{hah1}{hah2}
\tkzDefMidPoint(hah1,hah2) \tkzGetPoint{G}
\tkzInterLC[/tikz/overlay](A,B)(C,A)\tkzGetPoints{hch1}{hch2}
\tkzDefMidPoint(hch1,hch2) \tkzGetPoint{H}
\tkzInterLC[/tikz/overlay](A,C)(B,A)\tkzGetPoints{hbh1}{hbh2}
\tkzDefMidPoint(hbh1,hbh2) \tkzGetPoint{I}
% 'Hoehenschnittpunkt'
\tkzInterLL(A,G)(C,H)\tkzGetPoint{S}
% More points
\tkzInterLC[/tikz/overlay,R](A,G)(Icircle,\rIN pt)\tkzGetPoints{G}{J}
\tkzInterLC[/tikz/overlay,R](B,I)(Icircle,\rIN pt)\tkzGetPoints{L}{I}
\tkzInterLC[/tikz/overlay,R](C,H)(Icircle,\rIN pt)\tkzGetPoints{H}{K}
% Draw polygon
\tkzDrawPolygon[thick](A,B,C)
\tkzDefCircle[circum,/tikz/overlay](A,B,C) \tkzGetPoint{Ocircle}
\tkzDrawCircle(Ocircle,A)
\tkzCalcLength(Ocircle,A) \tkzGetLength{dOcircle}
% TODO: define shiftedOcircOrigin which is
% Ocircle, but shifted by dOcircle (x-axis)
%\tkzDrawSegments[dashed](Ocircle,shiftedOcircOrigin)
% TODO: define shiftedIcircOrigin which is
% Icircle, but shifted by rIN (x-axis)
%\tkzDrawSegments[dashed](Icircle,shiftedIcircOrigin)
\tkzDrawPoints[size=2,fill=black](D,E,F,Icircle,Ocircle)
\end{tikzpicture}
\end{preview}
\end{document}
Выглядит это так:
решение1
Чтобы получить смещенную версию начала окружности, можно использовать синтаксис \tkzDefShiftPoint[OriginName](xshiftValue,yshiftValue){shiftedPointName}
. Здесь нам нужно сместить начало на величину, равную радиусу. Это реализуется следующим образом:
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all}
\usetikzlibrary{shapes, calc, decorations}
\usepackage{amsmath,amssymb}
\usepackage{helvet}
\usepackage[eulergreek]{sansmath}
\begin{document}
\begin{preview}
\begin{tikzpicture}[very thick,font=\sansmath\sffamily]
\tkzDefPoint(0,1){A}
\tkzDefPoint(4,0){B}
\tkzDefPoint(3,6){C}
\tkzLabelPoints[below left,font=\sansmath\sffamily](A)
\tkzLabelPoints[below right,font=\sansmath\sffamily](B)
\tkzLabelPoints[above,font=\sansmath\sffamily](C)
% Draw polygon
\tkzDrawPolygon[thick,fill=gray!10](A,B,C)
% Get mid points
\tkzDefMidPoint(A,B) \tkzGetPoint{F}
\tkzDefMidPoint(A,C) \tkzGetPoint{E}
\tkzDefMidPoint(B,C) \tkzGetPoint{D}
\tkzDefCircle[circum,/tikz/overlay](D,E,F)\tkzGetPoint{Icircle}\tkzGetLength{rIN}
\tkzDrawCircle[R](Icircle,\rIN pt)
% Get 'Hoehe'
\tkzInterLC[/tikz/overlay](B,C)(A,B)\tkzGetPoints{hah1}{hah2}
\tkzDefMidPoint(hah1,hah2) \tkzGetPoint{G}
\tkzInterLC[/tikz/overlay](A,B)(C,A)\tkzGetPoints{hch1}{hch2}
\tkzDefMidPoint(hch1,hch2) \tkzGetPoint{H}
\tkzInterLC[/tikz/overlay](A,C)(B,A)\tkzGetPoints{hbh1}{hbh2}
\tkzDefMidPoint(hbh1,hbh2) \tkzGetPoint{I}
% 'Hoehenschnittpunkt'
\tkzInterLL(A,G)(C,H)\tkzGetPoint{S}
% More points
\tkzInterLC[/tikz/overlay,R](A,G)(Icircle,\rIN pt)\tkzGetPoints{G}{J}
\tkzInterLC[/tikz/overlay,R](B,I)(Icircle,\rIN pt)\tkzGetPoints{L}{I}
\tkzInterLC[/tikz/overlay,R](C,H)(Icircle,\rIN pt)\tkzGetPoints{H}{K}
% Draw polygon
\tkzDrawPolygon[thick](A,B,C)
\tkzDefCircle[circum,/tikz/overlay](A,B,C) \tkzGetPoint{Ocircle}
\tkzDrawCircle(Ocircle,A)
\tkzCalcLength(Ocircle,A) \tkzGetLength{dOcircle}
% TODO: define shiftedOcircOrigin which is
% Ocircle, but shifted by dOcircle (x-axis)
\tkzDefShiftPoint[Ocircle](\dOcircle pt,0){C'}
\tkzDrawSegments[dashed](Ocircle,C')
\tkzLabelSegment[below](Ocircle,C'){$r_1$}
% TODO: define shiftedIcircOrigin which is
% Icircle, but shifted by rIN (x-axis)
\tkzDefShiftPoint[Icircle](\rIN pt,0){C''}
\tkzDrawSegments[dashed](Icircle,C'')
\tkzLabelSegment[below](Icircle,C''){$r_2$}
\tkzDrawPoints[size=2,fill=black](D,E,F,Icircle,Ocircle)
\end{tikzpicture}
\end{preview}
\end{document}
С требуемой формой: