How to make a hollow node with PointSymbol=o?
up vote
7
down vote
favorite
documentclass[12pt,border=5pt]{standalone}
usepackage{newcent,pstricks,pst-eucl,amsmath,amssymb}
usepackage{auto-pst-pdf}
begin{document}
begin{pspicture}
psset{PointSymbol=o}
pstGeonode[PointName=none,PointSymbol=none](2,4){A}(0,0){B}(6,0){C}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstGeonode[PosAngle=60](10,2){M}
pstMiddleAB[PointName=none,PointSymbol=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
{psset{nodesepB=-1} pstLineAB{M}{D} pstLineAB{M}{E}}
ncLine{O}{D} ncLine{O}{E}
pstInterLL[PointSymbol=none,PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
ncLine{O}{M} ncLine{D}{E}
end{pspicture}
end{document}
It produces the following.


But I want to have the following result.

pstricks pst-eucl
add a comment |
up vote
7
down vote
favorite
documentclass[12pt,border=5pt]{standalone}
usepackage{newcent,pstricks,pst-eucl,amsmath,amssymb}
usepackage{auto-pst-pdf}
begin{document}
begin{pspicture}
psset{PointSymbol=o}
pstGeonode[PointName=none,PointSymbol=none](2,4){A}(0,0){B}(6,0){C}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstGeonode[PosAngle=60](10,2){M}
pstMiddleAB[PointName=none,PointSymbol=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
{psset{nodesepB=-1} pstLineAB{M}{D} pstLineAB{M}{E}}
ncLine{O}{D} ncLine{O}{E}
pstInterLL[PointSymbol=none,PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
ncLine{O}{M} ncLine{D}{E}
end{pspicture}
end{document}
It produces the following.


But I want to have the following result.

pstricks pst-eucl
1
@ArtificialStupidity Yes, that code is very hot. :))
– chishimotoji
9 hours ago
add a comment |
up vote
7
down vote
favorite
up vote
7
down vote
favorite
documentclass[12pt,border=5pt]{standalone}
usepackage{newcent,pstricks,pst-eucl,amsmath,amssymb}
usepackage{auto-pst-pdf}
begin{document}
begin{pspicture}
psset{PointSymbol=o}
pstGeonode[PointName=none,PointSymbol=none](2,4){A}(0,0){B}(6,0){C}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstGeonode[PosAngle=60](10,2){M}
pstMiddleAB[PointName=none,PointSymbol=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
{psset{nodesepB=-1} pstLineAB{M}{D} pstLineAB{M}{E}}
ncLine{O}{D} ncLine{O}{E}
pstInterLL[PointSymbol=none,PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
ncLine{O}{M} ncLine{D}{E}
end{pspicture}
end{document}
It produces the following.


But I want to have the following result.

pstricks pst-eucl
documentclass[12pt,border=5pt]{standalone}
usepackage{newcent,pstricks,pst-eucl,amsmath,amssymb}
usepackage{auto-pst-pdf}
begin{document}
begin{pspicture}
psset{PointSymbol=o}
pstGeonode[PointName=none,PointSymbol=none](2,4){A}(0,0){B}(6,0){C}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstGeonode[PosAngle=60](10,2){M}
pstMiddleAB[PointName=none,PointSymbol=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
{psset{nodesepB=-1} pstLineAB{M}{D} pstLineAB{M}{E}}
ncLine{O}{D} ncLine{O}{E}
pstInterLL[PointSymbol=none,PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
ncLine{O}{M} ncLine{D}{E}
end{pspicture}
end{document}
It produces the following.


But I want to have the following result.

pstricks pst-eucl
pstricks pst-eucl
edited 11 hours ago
Artificial Stupidity
4,82111039
4,82111039
asked 11 hours ago
chishimotoji
543212
543212
1
@ArtificialStupidity Yes, that code is very hot. :))
– chishimotoji
9 hours ago
add a comment |
1
@ArtificialStupidity Yes, that code is very hot. :))
– chishimotoji
9 hours ago
1
1
@ArtificialStupidity Yes, that code is very hot. :))
– chishimotoji
9 hours ago
@ArtificialStupidity Yes, that code is very hot. :))
– chishimotoji
9 hours ago
add a comment |
3 Answers
3
active
oldest
votes
up vote
6
down vote
accepted
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none](-1,-3)(11,5)
pstGeonode[PointName=none](2,4){A}(0,0){B}(6,0){C}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstGeonode[PosAngle=60](10,2){M}
pstMiddleAB[PointName=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
{psset{nodesepB=-1} pstLineAB{M}{D}pstLineAB{M}{E}}
ncLine{O}{D}ncLine{O}{E}
pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
ncLine{O}{M}
ncLine{D}{E}
psset{fillcolor=white,fillstyle=solid}
pscircle(D){3pt}
pscircle(E){3pt}
pscircle(M){3pt}
end{pspicture}
end{document}

Simpler version
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl,pstricks-add}
defr{pscalculate{sqrt(10)}}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none](12,8)
pstGeonode[PosAngle={180,90}](4,4){O}(11,5){M}
pscircle(O){r}
psCircleTangents(M)(O){r}
pstGeonode[PosAngle={45,-45}](CircleT1){D}(CircleT2){E}
pstMiddleAB[PosAngle=-45]{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
pspolygon(O)(D)(M)(E)
psline{-o}(O)(M)
psline{o-o}(D)(E)
end{pspicture}
end{document}

1
(+1 +AC) Thank you for your answer. :))
– chishimotoji
10 hours ago
add a comment |
up vote
4
down vote
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none,dotsize=0.2](-1,-3)(11,5)
pstGeonode[PointName={none,none,none,M}](2,4){A}(0,0){B}(6,0){C}(10,2){M}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstMiddleAB[PointName=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
ncLine{O}{M} ncline[nodesepB=-1]{M}{D} ncline[nodesepB=-1]{o-}{M}{E}
psline(D)(O)(E) ncLine{o-o}{D}{E}
pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
end{pspicture}
end{document}

(+1) Wow, o-, o-o are very great. :))
– chishimotoji
10 hours ago
add a comment |
up vote
3
down vote
For comparison: a TikZ version without tkz-euclide and the like.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{calc,through}
tikzset{circle through 3 points/.style n args={3}{% https://tex.stackexchange.com/a/461180/121799
insert path={let p1=($(#1)!0.5!(#2)$),
p2=($(#1)!0.5!(#3)$),
p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
p4=($(#1)!0.5!(#3)!1!90:(#3)$),
p5=(intersection of p1--p3 and p2--p4)
in },
at={(p5)},
circle through= {(#1)}
}}
begin{document}
begin{tikzpicture}[bullet/.style={circle,draw,fill=white,inner sep=1pt}]
path (2,4) coordinate(A) (0,0) coordinate(B) (6,0) coordinate(C) (10,2)
node[bullet,label=above:$M$](M){};
node[circle through 3 points={A}{B}{C},draw] (c){};
draw[shorten <=-1cm]
(tangent cs:node=c,point={(M)},solution=1) node[bullet,label=above:$D$](D){}
-- (M) ;
draw[shorten <=-1cm] (tangent cs:node=c,point={(M)},solution=2)
node[bullet,label=below:$E$] (E){} -- (M);
draw (D) -- (c.center) node[bullet,label=left:$O$] (O){} -- (E) -- (D);
draw (O) -- (M);
path (intersection cs:first line={(D)--(E)}, second line={(O)--(M)})
node[bullet,label=above right:$H$] (H){};
draw ($(H)!2mm!(M)$) coordinate(aux) -- ($(aux)!2mm!-90:(M)$)
-- ($(H)!2mm!(E)$);
end{tikzpicture}
end{document}

add a comment |
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
6
down vote
accepted
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none](-1,-3)(11,5)
pstGeonode[PointName=none](2,4){A}(0,0){B}(6,0){C}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstGeonode[PosAngle=60](10,2){M}
pstMiddleAB[PointName=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
{psset{nodesepB=-1} pstLineAB{M}{D}pstLineAB{M}{E}}
ncLine{O}{D}ncLine{O}{E}
pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
ncLine{O}{M}
ncLine{D}{E}
psset{fillcolor=white,fillstyle=solid}
pscircle(D){3pt}
pscircle(E){3pt}
pscircle(M){3pt}
end{pspicture}
end{document}

Simpler version
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl,pstricks-add}
defr{pscalculate{sqrt(10)}}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none](12,8)
pstGeonode[PosAngle={180,90}](4,4){O}(11,5){M}
pscircle(O){r}
psCircleTangents(M)(O){r}
pstGeonode[PosAngle={45,-45}](CircleT1){D}(CircleT2){E}
pstMiddleAB[PosAngle=-45]{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
pspolygon(O)(D)(M)(E)
psline{-o}(O)(M)
psline{o-o}(D)(E)
end{pspicture}
end{document}

1
(+1 +AC) Thank you for your answer. :))
– chishimotoji
10 hours ago
add a comment |
up vote
6
down vote
accepted
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none](-1,-3)(11,5)
pstGeonode[PointName=none](2,4){A}(0,0){B}(6,0){C}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstGeonode[PosAngle=60](10,2){M}
pstMiddleAB[PointName=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
{psset{nodesepB=-1} pstLineAB{M}{D}pstLineAB{M}{E}}
ncLine{O}{D}ncLine{O}{E}
pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
ncLine{O}{M}
ncLine{D}{E}
psset{fillcolor=white,fillstyle=solid}
pscircle(D){3pt}
pscircle(E){3pt}
pscircle(M){3pt}
end{pspicture}
end{document}

Simpler version
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl,pstricks-add}
defr{pscalculate{sqrt(10)}}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none](12,8)
pstGeonode[PosAngle={180,90}](4,4){O}(11,5){M}
pscircle(O){r}
psCircleTangents(M)(O){r}
pstGeonode[PosAngle={45,-45}](CircleT1){D}(CircleT2){E}
pstMiddleAB[PosAngle=-45]{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
pspolygon(O)(D)(M)(E)
psline{-o}(O)(M)
psline{o-o}(D)(E)
end{pspicture}
end{document}

1
(+1 +AC) Thank you for your answer. :))
– chishimotoji
10 hours ago
add a comment |
up vote
6
down vote
accepted
up vote
6
down vote
accepted
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none](-1,-3)(11,5)
pstGeonode[PointName=none](2,4){A}(0,0){B}(6,0){C}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstGeonode[PosAngle=60](10,2){M}
pstMiddleAB[PointName=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
{psset{nodesepB=-1} pstLineAB{M}{D}pstLineAB{M}{E}}
ncLine{O}{D}ncLine{O}{E}
pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
ncLine{O}{M}
ncLine{D}{E}
psset{fillcolor=white,fillstyle=solid}
pscircle(D){3pt}
pscircle(E){3pt}
pscircle(M){3pt}
end{pspicture}
end{document}

Simpler version
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl,pstricks-add}
defr{pscalculate{sqrt(10)}}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none](12,8)
pstGeonode[PosAngle={180,90}](4,4){O}(11,5){M}
pscircle(O){r}
psCircleTangents(M)(O){r}
pstGeonode[PosAngle={45,-45}](CircleT1){D}(CircleT2){E}
pstMiddleAB[PosAngle=-45]{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
pspolygon(O)(D)(M)(E)
psline{-o}(O)(M)
psline{o-o}(D)(E)
end{pspicture}
end{document}

documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none](-1,-3)(11,5)
pstGeonode[PointName=none](2,4){A}(0,0){B}(6,0){C}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstGeonode[PosAngle=60](10,2){M}
pstMiddleAB[PointName=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
{psset{nodesepB=-1} pstLineAB{M}{D}pstLineAB{M}{E}}
ncLine{O}{D}ncLine{O}{E}
pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
ncLine{O}{M}
ncLine{D}{E}
psset{fillcolor=white,fillstyle=solid}
pscircle(D){3pt}
pscircle(E){3pt}
pscircle(M){3pt}
end{pspicture}
end{document}

Simpler version
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl,pstricks-add}
defr{pscalculate{sqrt(10)}}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none](12,8)
pstGeonode[PosAngle={180,90}](4,4){O}(11,5){M}
pscircle(O){r}
psCircleTangents(M)(O){r}
pstGeonode[PosAngle={45,-45}](CircleT1){D}(CircleT2){E}
pstMiddleAB[PosAngle=-45]{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
pspolygon(O)(D)(M)(E)
psline{-o}(O)(M)
psline{o-o}(D)(E)
end{pspicture}
end{document}

edited 9 hours ago
answered 11 hours ago
Artificial Stupidity
4,82111039
4,82111039
1
(+1 +AC) Thank you for your answer. :))
– chishimotoji
10 hours ago
add a comment |
1
(+1 +AC) Thank you for your answer. :))
– chishimotoji
10 hours ago
1
1
(+1 +AC) Thank you for your answer. :))
– chishimotoji
10 hours ago
(+1 +AC) Thank you for your answer. :))
– chishimotoji
10 hours ago
add a comment |
up vote
4
down vote
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none,dotsize=0.2](-1,-3)(11,5)
pstGeonode[PointName={none,none,none,M}](2,4){A}(0,0){B}(6,0){C}(10,2){M}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstMiddleAB[PointName=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
ncLine{O}{M} ncline[nodesepB=-1]{M}{D} ncline[nodesepB=-1]{o-}{M}{E}
psline(D)(O)(E) ncLine{o-o}{D}{E}
pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
end{pspicture}
end{document}

(+1) Wow, o-, o-o are very great. :))
– chishimotoji
10 hours ago
add a comment |
up vote
4
down vote
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none,dotsize=0.2](-1,-3)(11,5)
pstGeonode[PointName={none,none,none,M}](2,4){A}(0,0){B}(6,0){C}(10,2){M}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstMiddleAB[PointName=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
ncLine{O}{M} ncline[nodesepB=-1]{M}{D} ncline[nodesepB=-1]{o-}{M}{E}
psline(D)(O)(E) ncLine{o-o}{D}{E}
pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
end{pspicture}
end{document}

(+1) Wow, o-, o-o are very great. :))
– chishimotoji
10 hours ago
add a comment |
up vote
4
down vote
up vote
4
down vote
documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none,dotsize=0.2](-1,-3)(11,5)
pstGeonode[PointName={none,none,none,M}](2,4){A}(0,0){B}(6,0){C}(10,2){M}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstMiddleAB[PointName=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
ncLine{O}{M} ncline[nodesepB=-1]{M}{D} ncline[nodesepB=-1]{o-}{M}{E}
psline(D)(O)(E) ncLine{o-o}{D}{E}
pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
end{pspicture}
end{document}

documentclass[12pt,border=15pt,pstricks]{standalone}
usepackage{pst-eucl}
begin{document}
begin{pspicture}[showgrid,PointSymbol=none,dotsize=0.2](-1,-3)(11,5)
pstGeonode[PointName={none,none,none,M}](2,4){A}(0,0){B}(6,0){C}(10,2){M}
pstCircleABC[PosAngle=180]{A}{B}{C}{O}
pstMiddleAB[PointName=none]{O}{M}{M'}
pstInterCC[DiameterB=pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
ncLine{O}{M} ncline[nodesepB=-1]{M}{D} ncline[nodesepB=-1]{o-}{M}{E}
psline(D)(O)(E) ncLine{o-o}{D}{E}
pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
pstRightAngle[RightAngleSize=.2]{D}{H}{M}
end{pspicture}
end{document}

answered 10 hours ago
Herbert
267k23406716
267k23406716
(+1) Wow, o-, o-o are very great. :))
– chishimotoji
10 hours ago
add a comment |
(+1) Wow, o-, o-o are very great. :))
– chishimotoji
10 hours ago
(+1) Wow, o-, o-o are very great. :))
– chishimotoji
10 hours ago
(+1) Wow, o-, o-o are very great. :))
– chishimotoji
10 hours ago
add a comment |
up vote
3
down vote
For comparison: a TikZ version without tkz-euclide and the like.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{calc,through}
tikzset{circle through 3 points/.style n args={3}{% https://tex.stackexchange.com/a/461180/121799
insert path={let p1=($(#1)!0.5!(#2)$),
p2=($(#1)!0.5!(#3)$),
p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
p4=($(#1)!0.5!(#3)!1!90:(#3)$),
p5=(intersection of p1--p3 and p2--p4)
in },
at={(p5)},
circle through= {(#1)}
}}
begin{document}
begin{tikzpicture}[bullet/.style={circle,draw,fill=white,inner sep=1pt}]
path (2,4) coordinate(A) (0,0) coordinate(B) (6,0) coordinate(C) (10,2)
node[bullet,label=above:$M$](M){};
node[circle through 3 points={A}{B}{C},draw] (c){};
draw[shorten <=-1cm]
(tangent cs:node=c,point={(M)},solution=1) node[bullet,label=above:$D$](D){}
-- (M) ;
draw[shorten <=-1cm] (tangent cs:node=c,point={(M)},solution=2)
node[bullet,label=below:$E$] (E){} -- (M);
draw (D) -- (c.center) node[bullet,label=left:$O$] (O){} -- (E) -- (D);
draw (O) -- (M);
path (intersection cs:first line={(D)--(E)}, second line={(O)--(M)})
node[bullet,label=above right:$H$] (H){};
draw ($(H)!2mm!(M)$) coordinate(aux) -- ($(aux)!2mm!-90:(M)$)
-- ($(H)!2mm!(E)$);
end{tikzpicture}
end{document}

add a comment |
up vote
3
down vote
For comparison: a TikZ version without tkz-euclide and the like.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{calc,through}
tikzset{circle through 3 points/.style n args={3}{% https://tex.stackexchange.com/a/461180/121799
insert path={let p1=($(#1)!0.5!(#2)$),
p2=($(#1)!0.5!(#3)$),
p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
p4=($(#1)!0.5!(#3)!1!90:(#3)$),
p5=(intersection of p1--p3 and p2--p4)
in },
at={(p5)},
circle through= {(#1)}
}}
begin{document}
begin{tikzpicture}[bullet/.style={circle,draw,fill=white,inner sep=1pt}]
path (2,4) coordinate(A) (0,0) coordinate(B) (6,0) coordinate(C) (10,2)
node[bullet,label=above:$M$](M){};
node[circle through 3 points={A}{B}{C},draw] (c){};
draw[shorten <=-1cm]
(tangent cs:node=c,point={(M)},solution=1) node[bullet,label=above:$D$](D){}
-- (M) ;
draw[shorten <=-1cm] (tangent cs:node=c,point={(M)},solution=2)
node[bullet,label=below:$E$] (E){} -- (M);
draw (D) -- (c.center) node[bullet,label=left:$O$] (O){} -- (E) -- (D);
draw (O) -- (M);
path (intersection cs:first line={(D)--(E)}, second line={(O)--(M)})
node[bullet,label=above right:$H$] (H){};
draw ($(H)!2mm!(M)$) coordinate(aux) -- ($(aux)!2mm!-90:(M)$)
-- ($(H)!2mm!(E)$);
end{tikzpicture}
end{document}

add a comment |
up vote
3
down vote
up vote
3
down vote
For comparison: a TikZ version without tkz-euclide and the like.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{calc,through}
tikzset{circle through 3 points/.style n args={3}{% https://tex.stackexchange.com/a/461180/121799
insert path={let p1=($(#1)!0.5!(#2)$),
p2=($(#1)!0.5!(#3)$),
p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
p4=($(#1)!0.5!(#3)!1!90:(#3)$),
p5=(intersection of p1--p3 and p2--p4)
in },
at={(p5)},
circle through= {(#1)}
}}
begin{document}
begin{tikzpicture}[bullet/.style={circle,draw,fill=white,inner sep=1pt}]
path (2,4) coordinate(A) (0,0) coordinate(B) (6,0) coordinate(C) (10,2)
node[bullet,label=above:$M$](M){};
node[circle through 3 points={A}{B}{C},draw] (c){};
draw[shorten <=-1cm]
(tangent cs:node=c,point={(M)},solution=1) node[bullet,label=above:$D$](D){}
-- (M) ;
draw[shorten <=-1cm] (tangent cs:node=c,point={(M)},solution=2)
node[bullet,label=below:$E$] (E){} -- (M);
draw (D) -- (c.center) node[bullet,label=left:$O$] (O){} -- (E) -- (D);
draw (O) -- (M);
path (intersection cs:first line={(D)--(E)}, second line={(O)--(M)})
node[bullet,label=above right:$H$] (H){};
draw ($(H)!2mm!(M)$) coordinate(aux) -- ($(aux)!2mm!-90:(M)$)
-- ($(H)!2mm!(E)$);
end{tikzpicture}
end{document}

For comparison: a TikZ version without tkz-euclide and the like.
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{calc,through}
tikzset{circle through 3 points/.style n args={3}{% https://tex.stackexchange.com/a/461180/121799
insert path={let p1=($(#1)!0.5!(#2)$),
p2=($(#1)!0.5!(#3)$),
p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
p4=($(#1)!0.5!(#3)!1!90:(#3)$),
p5=(intersection of p1--p3 and p2--p4)
in },
at={(p5)},
circle through= {(#1)}
}}
begin{document}
begin{tikzpicture}[bullet/.style={circle,draw,fill=white,inner sep=1pt}]
path (2,4) coordinate(A) (0,0) coordinate(B) (6,0) coordinate(C) (10,2)
node[bullet,label=above:$M$](M){};
node[circle through 3 points={A}{B}{C},draw] (c){};
draw[shorten <=-1cm]
(tangent cs:node=c,point={(M)},solution=1) node[bullet,label=above:$D$](D){}
-- (M) ;
draw[shorten <=-1cm] (tangent cs:node=c,point={(M)},solution=2)
node[bullet,label=below:$E$] (E){} -- (M);
draw (D) -- (c.center) node[bullet,label=left:$O$] (O){} -- (E) -- (D);
draw (O) -- (M);
path (intersection cs:first line={(D)--(E)}, second line={(O)--(M)})
node[bullet,label=above right:$H$] (H){};
draw ($(H)!2mm!(M)$) coordinate(aux) -- ($(aux)!2mm!-90:(M)$)
-- ($(H)!2mm!(E)$);
end{tikzpicture}
end{document}

answered 10 hours ago
marmot
82.3k493176
82.3k493176
add a comment |
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f464337%2fhow-to-make-a-hollow-node-with-pointsymbol-o%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
@ArtificialStupidity Yes, that code is very hot. :))
– chishimotoji
9 hours ago