Centroid, Orthocenter, Incenter, Circumcenter, Euler Line & Nine-Point Circle
2018-01-18 16:27
This applet demonstrates the geometric constructions of a triangle's four important special points: the centroid, orthocenter, incenter, and circumcenter, as well as the Euler line and the nine-point circle. The centroid is constructed by drawing the three medians of the triangle, each connecting a vertex to the midpoint of the opposite side; their common intersection is the centroid. The orthocenter is found by constructing the three altitudes, which are perpendicular lines dropped from each vertex to the opposite side, meeting at the orthocenter. The incenter is obtained by drawing the three angle bisectors of the triangle, intersecting at the point equidistant from all three sides. The circumcenter is constructed using the perpendicular bisectors of the three sides, meeting at the center of the circumscribed circle passing through all three vertices.
The applet then highlights the Euler line, a remarkable straight line that passes through the centroid, orthocenter, and circumcenter, revealing their collinearity — a classical result in triangle geometry. It also demonstrates the nine-point circle, which passes through nine significant points: the midpoints of the three sides, the feet of the three altitudes, and the midpoints of the segments connecting each vertex to the orthocenter. The radius of the nine-point circle is exactly half the radius of the circumcircle, and its center lies on the Euler line, midway between the orthocenter and the circumcenter.
Through interactive sliders and draggable vertices, users can observe how these constructions and properties are preserved under changes to the triangle's shape and size, whether scalene, isosceles, or right-angled. This dynamic visualization makes it an invaluable tool for deepening understanding of plane geometry, offering students an intuitive grasp of the elegant relationships among these classical elements. It is well suited for both classroom instruction and independent study.
Loading the math board and drawing, please wait…
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="5.0" version="5.0.418.0" app="classic" platform="d" id="d2096732-aabd-4ff5-b1b6-c9ece83919ef" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="1069" height="798" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.23012160898035547" orientation="1" />
</panes>
<views>
<view id="4097" visible="false" inframe="true" stylebar="true" location="1,1,1,1" size="400" window="610,241,700,550" />
<view id="512" toolbar="0 | 1 501 5 19 , 67 | 2 15 45 18 , 7 37 | 514 3 9 , 13 44 , 47 | 16 | 551 550 11 , 20 22 21 23 , 55 56 57 , 12 | 69 | 510 511 , 512 513 | 533 531 , 534 532 , 522 523 , 537 536 , 535 | 521 520 | 36 , 38 49 560 | 571 30 29 570 31 33 | 17 | 540 40 41 42 , 27 28 35 , 6 , 502" visible="false" inframe="false" stylebar="false" location="1,1,1" size="500" window="100,100,600,400" />
<view id="4" toolbar="0 || 2020 , 2021 , 2022 , 66 || 2001 , 2003 , 2002 , 2004 , 2005 || 2040 , 2041 , 2042 , 2044 , 2043" visible="false" inframe="false" stylebar="false" location="1,1" size="300" window="100,100,600,400" />
<view id="8" toolbar="1001 | 1002 | 1003 || 1005 | 1004 || 1006 | 1007 | 1010 || 1008 1009 || 66 68 || 6" visible="false" inframe="false" stylebar="false" location="1,3" size="300" window="100,100,600,400" />
<view id="1" visible="true" inframe="false" stylebar="true" location="1" size="1040" window="100,100,600,400" />
<view id="2" visible="false" inframe="false" stylebar="false" location="3" size="246" window="100,100,600,400" />
<view id="16" visible="false" inframe="false" stylebar="false" location="1" size="150" window="50,50,500,500" />
<view id="32" visible="false" inframe="false" stylebar="true" location="1" size="150" window="50,50,500,500" />
<view id="64" toolbar="0" visible="false" inframe="true" stylebar="true" location="1" size="150" window="50,50,500,500" />
<view id="70" toolbar="0 || 2020 || 2021 || 2022" visible="false" inframe="true" stylebar="true" location="1" size="150" window="50,50,500,500" />
</views>
<toolbar show="true" items="0 39 73 62 | 1 501 67 , 5 19 , 72 75 76 | 2 15 45 , 18 65 , 7 37 | 4 3 8 9 , 13 44 , 58 , 47 | 16 51 64 , 70 | 10 34 53 11 , 24 20 22 , 21 23 | 55 56 57 , 12 | 36 46 , 38 49 50 , 71 14 68 | 30 29 54 32 31 33 | 25 17 26 60 52 61 | 40 41 42 , 27 28 35 , 6" position="1" help="false" />
<input show="true" cmd="true" top="algebra" />
<dockBar show="true" east="true" />
</perspective>
</perspectives>
<labelingStyle val="3"/>
<font size="16"/>
</gui>
<euclidianView>
<viewNumber viewNo="1"/>
<size width="1040" height="608"/>
<coordSystem xZero="347.16149070247906" yZero="452.17548127582654" scale="57.84843750000003" yscale="57.8484375"/>
<evSettings axes="false" grid="false" gridIsBold="false" pointCapturing="3" rightAngleStyle="1" checkboxSize="26" gridType="3"/>
<bgColor r="255" g="255" b="255"/>
<axesColor r="0" g="0" b="0"/>
<gridColor r="192" g="192" b="192"/>
<lineStyle axes="1" grid="0"/>
<axis id="0" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
<axis id="1" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
</euclidianView>
<kernel>
<continuous val="false"/>
<usePathAndRegionParameters val="true"/>
<decimals val="2"/>
<angleUnit val="degree"/>
<algebraStyle val="0" spreadsheet="0"/>
<coordStyle val="0"/>
</kernel>
<scripting blocked="false" disabled="false"/>
<construction title="三角形重心、垂心、內心、外心、尤拉線、九點圓圖解" author="" date="">
<element type="point" label="A">
<show object="true" label="true" ev="4"/>
<objColor r="77" g="77" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<isShape val="false"/>
<coords x="0.0" y="0.0" z="1.0"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<element type="point" label="B">
<show object="true" label="true" ev="4"/>
<objColor r="77" g="77" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<isShape val="false"/>
<coords x="10.0" y="0.0" z="1.0"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="A" a1="B"/>
<output a0="f"/>
</command>
<element type="segment" label="f">
<show object="true" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="0.0" y="10.0" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="point" label="C">
<show object="true" label="true" ev="4"/>
<objColor r="77" g="77" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<isShape val="false"/>
<coords x="5.8746359276777484" y="5.915034114375631" z="1.0"/>
<pointSize val="5"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="C" a1="A"/>
<output a0="g"/>
</command>
<element type="segment" label="g">
<show object="true" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="5.915034114375631" y="-5.8746359276777484" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="C" a1="B"/>
<output a0="h"/>
</command>
<element type="segment" label="h">
<show object="true" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="5.915034114375631" y="4.1253640723222516" z="-59.15034114375631"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Midpoint">
<input a0="A" a1="B"/>
<output a0="D"/>
</command>
<element type="point" label="D">
<show object="true" label="false" ev="4"/>
<condition showObject="a"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="5.0" y="0.0" z="1.0"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Midpoint">
<input a0="B" a1="C"/>
<output a0="E"/>
</command>
<element type="point" label="E">
<show object="true" label="false" ev="4"/>
<condition showObject="a"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="7.937317963838874" y="2.9575170571878155" z="1.0"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Midpoint">
<input a0="C" a1="A"/>
<output a0="F"/>
</command>
<element type="point" label="F">
<show object="true" label="false" ev="4"/>
<condition showObject="a"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="72" y="34"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="2.9373179638388742" y="2.9575170571878155" z="1.0"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="A" a1="E"/>
<output a0="i"/>
</command>
<element type="segment" label="i">
<show object="true" label="false" ev="4"/>
<condition showObject="a"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-2.9575170571878155" y="7.937317963838874" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="B" a1="F"/>
<output a0="j"/>
</command>
<element type="segment" label="j">
<show object="true" label="false" ev="4"/>
<condition showObject="a"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-2.9575170571878155" y="-7.062682036161126" z="29.575170571878154"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="C" a1="D"/>
<output a0="k"/>
</command>
<element type="segment" label="k">
<show object="true" label="false" ev="4"/>
<condition showObject="a"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="5.915034114375631" y="-0.8746359276777484" z="-29.575170571878154"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Intersect">
<input a0="j" a1="i"/>
<output a0="重心"/>
</command>
<element type="point" label="重心">
<show object="true" label="true" ev="4"/>
<condition showObject="a"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="22" y="11"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="234.7475326637673" y="87.46907143556876" z="44.362755857817234"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<element type="boolean" label="a">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="111" y="42"/>
<labelMode val="3"/>
<checkbox fixed="true"/>
<caption val="重心"/>
</element>
<command name="OrthogonalLine">
<input a0="A" a1="h"/>
<output a0="l"/>
</command>
<element type="line" label="l">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-4.1253640723222516" y="5.915034114375631" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="OrthogonalLine">
<input a0="B" a1="g"/>
<output a0="m"/>
</command>
<element type="line" label="m">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="5.8746359276777484" y="5.915034114375631" z="-58.74635927677748"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="OrthogonalLine">
<input a0="C" a1="f"/>
<output a0="n"/>
</command>
<element type="line" label="n">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-10.0" y="0.0" z="58.74635927677748"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="Intersect">
<input a0="l" a1="m"/>
<output a0="垂心"/>
</command>
<element type="point" label="垂心">
<show object="true" label="true" ev="4"/>
<condition showObject="u"/>
<objColor r="0" g="100" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="347.48671921750616" y="242.35011994015284" z="59.15034114375631"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="l" a1="h"/>
<output a0="H"/>
</command>
<element type="point" label="H">
<show object="true" label="false"/>
<condition showObject="u"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="349.87628574227506" y="244.01669222005694" z="52.00625730343474"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="m" a1="g"/>
<output a0="I"/>
</command>
<element type="point" label="I">
<show object="true" label="false"/>
<condition showObject="u"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="345.113472827622" y="347.48671921750616" z="69.49897585698972"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="n" a1="f"/>
<output a0="J"/>
</command>
<element type="point" label="J">
<show object="true" label="false"/>
<condition showObject="u"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="587.4635927677748" y="-0.0" z="100.0"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="AngularBisector">
<input a0="f" a1="g"/>
<output a0="p" a1="q"/>
</command>
<element type="line" label="p">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="0.9232225327425425" y="0.3842657349236918" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<element type="line" label="q">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-0.3842657349236918" y="0.9232225327425425" z="-0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="AngularBisector">
<input a0="h" a1="f"/>
<output a0="r" a1="s"/>
</command>
<element type="line" label="r">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="0.4625739681804576" y="0.8865806923014875" z="-4.625739681804576"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<element type="line" label="s">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-0.8865806923014875" y="0.4625739681804576" z="8.865806923014874"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="AngularBisector">
<input a0="g" a1="h"/>
<output a0="t" a1="c"/>
</command>
<element type="line" label="t">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="0.9962625980666481" y="-0.0863761291879439" z="-5.341762301189503"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<element type="line" label="c">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="0.0863761291879439" y="0.9962625980666481" z="-6.400355566261951"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="Intersect">
<input a0="q" a1="r"/>
<output a0="內心"/>
</command>
<element type="point" label="內心">
<show object="true" label="true" ev="4"/>
<condition showObject="o"/>
<objColor r="220" g="20" b="60" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="20" y="16"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="4.270587104843303" y="1.7775132583943196" z="0.7677412917807169"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="q" a1="h"/>
<output a0="G"/>
</command>
<element type="point" label="G">
<show object="true" label="false"/>
<condition showObject="o"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="54.60892776332412" y="22.729449310592603" z="7.046128833411116"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="r" a1="g"/>
<output a0="K"/>
</command>
<element type="point" label="K">
<show object="true" label="false"/>
<condition showObject="o"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="27.174536526813796" y="27.36140802209514" z="7.961608692791443"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="t" a1="f"/>
<output a0="L"/>
</command>
<element type="point" label="L">
<show object="true" label="false" ev="4"/>
<condition showObject="o"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="53.41762301189503" y="-0.0" z="9.96262598066648"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="A" a1="G"/>
<output a0="d"/>
</command>
<element type="segment" label="d">
<show object="true" label="false"/>
<condition showObject="o"/>
<objColor r="220" g="20" b="60" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-3.2258066589436747" y="7.750202849596106" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="B" a1="K"/>
<output a0="e"/>
</command>
<element type="segment" label="e">
<show object="true" label="false"/>
<condition showObject="o"/>
<objColor r="220" g="20" b="60" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-3.4366682762076164" y="-6.5868032987582" z="34.36668276207617"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="L" a1="C"/>
<output a0="f_1"/>
</command>
<element type="segment" label="f_1">
<show object="true" label="false"/>
<condition showObject="o"/>
<objColor r="220" g="20" b="60" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-5.915034114375631" y="0.5128344191640766" z="31.71523883736909"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="boolean" label="o">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="111" y="158"/>
<labelMode val="3"/>
<checkbox fixed="true"/>
<caption val="內心"/>
</element>
<command name="Segment">
<input a0="A" a1="H"/>
<output a0="b"/>
</command>
<element type="segment" label="b">
<show object="true" label="false"/>
<condition showObject="u"/>
<objColor r="0" g="100" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-4.692064087525501" y="6.727580562102237" z="0.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="B" a1="I"/>
<output a0="g_1"/>
</command>
<element type="segment" label="g_1">
<show object="true" label="false"/>
<condition showObject="u"/>
<objColor r="0" g="100" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-4.999882587227484" y="-5.03426534604232" z="49.998825872274836"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="C" a1="J"/>
<output a0="h_1"/>
</command>
<element type="segment" label="h_1">
<show object="true" label="false"/>
<condition showObject="u"/>
<objColor r="0" g="100" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="5.915034114375631" y="-8.881784197001252E-16" z="-34.748671921750606"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="boolean" label="u">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="111" y="100"/>
<labelMode val="3"/>
<checkbox fixed="true"/>
<caption val="垂心"/>
</element>
<command name="LineBisector">
<input a0="A" a1="B"/>
<output a0="i_1"/>
</command>
<element type="line" label="i_1">
<show object="true" label="false" ev="4"/>
<condition showObject="v"/>
<objColor r="255" g="127" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-10.0" y="0.0" z="50.0"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="LineBisector">
<input a0="B" a1="C"/>
<output a0="j_1"/>
</command>
<element type="line" label="j_1">
<show object="true" label="false"/>
<condition showObject="v"/>
<objColor r="255" g="127" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="4.1253640723222516" y="-5.915034114375631" z="-15.250512071505145"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="LineBisector">
<input a0="C" a1="A"/>
<output a0="k_1"/>
</command>
<element type="line" label="k_1">
<show object="true" label="false"/>
<condition showObject="v"/>
<objColor r="255" g="127" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="5.8746359276777484" y="5.915034114375631" z="-34.74948792849486"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="Intersect">
<input a0="i_1" a1="j_1"/>
<output a0="外心"/>
</command>
<element type="point" label="外心">
<show object="true" label="true" ev="4"/>
<condition showObject="v"/>
<objColor r="255" g="127" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="19" y="13"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="295.7517057187816" y="53.763082901061125" z="59.15034114375631"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<element type="boolean" label="v">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="111" y="216"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="外心"/>
</element>
<command name="OrthogonalLine">
<input a0="內心" a1="f"/>
<output a0="l_1"/>
</command>
<element type="line" label="l_1">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-7.677412917807169" y="0.0" z="42.705871048433025"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="Intersect">
<input a0="l_1" a1="f"/>
<output a0="M"/>
</command>
<element type="point" label="M">
<show object="true" label="false"/>
<condition showObject="w"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="427.0587104843303" y="-0.0" z="76.77412917807169"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="l_1" a1="d"/>
<output a0="N"/>
</command>
<element type="point" label="N">
<show object="true" label="false"/>
<condition showObject="w"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="330.9791634940495" y="137.76088320402513" z="59.501507473115076"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Circle">
<input a0="內心" a1="M"/>
<output a0="c_1"/>
</command>
<element type="conic" label="c_1">
<show object="true" label="false"/>
<condition showObject="w"/>
<objColor r="220" g="20" b="60" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eigenvectors x0="1.0" y0="0.0" z0="1.0" x1="-0.0" y1="1.0" z1="1.0"/>
<matrix A0="1.0" A1="1.0" A2="30.941785459120283" A3="0.0" A4="-5.562534086108622" A5="-2.315250302965357"/>
<eqnStyle style="specific"/>
</element>
<command name="OrthogonalLine">
<input a0="內心" a1="g"/>
<output a0="m_1"/>
</command>
<element type="line" label="m_1">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="4.510200575856725" y="4.541215931897756" z="-35.60219600054715"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="OrthogonalLine">
<input a0="內心" a1="h"/>
<output a0="n_1"/>
</command>
<element type="line" label="n_1">
<show object="false" label="false" ev="4"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-3.1672123419504445" y="4.541215931897756" z="7.1036750478858774"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eqnStyle style="implicit"/>
</element>
<command name="Intersect">
<input a0="n_1" a1="h"/>
<output a0="O"/>
</command>
<element type="point" label="O">
<show object="true" label="false"/>
<condition showObject="w"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="297.9197174032139" y="145.32321025540023" z="39.92735116281933"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Intersect">
<input a0="m_1" a1="g"/>
<output a0="P"/>
</command>
<element type="point" label="P">
<show object="true" label="false"/>
<condition showObject="w"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="209.14993972903935" y="210.58820388992407" z="53.357233501882135"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="內心" a1="M"/>
<output a0="p_1"/>
</command>
<element type="segment" label="p_1">
<show object="true" label="false" ev="4"/>
<condition showObject="w"/>
<objColor r="220" g="20" b="60" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="2.315250302965357" y="0.0" z="-12.878658728118113"/>
<lineStyle thickness="5" type="15" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="內心" a1="O"/>
<output a0="q_1"/>
</command>
<element type="segment" label="q_1">
<show object="true" label="false" ev="4"/>
<condition showObject="w"/>
<objColor r="220" g="20" b="60" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-1.3244404359165745" y="1.8990106627110581" z="2.970560057630287"/>
<lineStyle thickness="5" type="15" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="內心" a1="P"/>
<output a0="r_1"/>
</command>
<element type="segment" label="r_1">
<show object="true" label="false" ev="4"/>
<condition showObject="w"/>
<objColor r="220" g="20" b="60" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="-1.6315098655972755" y="-1.642729291100617" z="12.878658728118111"/>
<lineStyle thickness="5" type="15" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="boolean" label="w">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="226" y="158"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="內切圓"/>
</element>
<command name="Circle">
<input a0="外心" a1="A"/>
<output a0="d_1"/>
</command>
<element type="conic" label="d_1">
<show object="true" label="false"/>
<condition showObject="a_1"/>
<objColor r="255" g="127" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<lineStyle thickness="5" type="0" typeHidden="1" opacity="178"/>
<eigenvectors x0="1.0" y0="0.0" z0="1.0" x1="-0.0" y1="1.0" z1="1.0"/>
<matrix A0="1.0" A1="1.0" A2="5.662137425588298E-15" A3="0.0" A4="-5.000000000000001" A5="-0.9089226175449735"/>
<eqnStyle style="specific"/>
</element>
<element type="boolean" label="a_1">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="226" y="216"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="外接圓"/>
</element>
<command name="Segment">
<input a0="垂心" a1="外心"/>
<output a0="s_1"/>
</command>
<element type="segment" label="s_1">
<show object="true" label="false"/>
<condition showObject="b_1"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="3.188266261740712" y="-0.8746359276777484" z="-15.146354931919827"/>
<lineStyle thickness="13" type="0" typeHidden="1" opacity="178"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<element type="boolean" label="b_1">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="111" y="271"/>
<labelMode val="3"/>
<checkbox fixed="true"/>
<caption val="尤拉線(選擇重心垂心外心)"/>
</element>
<command name="Midpoint">
<input a0="垂心" a1="A"/>
<output a0="Q"/>
</command>
<element type="point" label="Q">
<show object="true" label="true"/>
<condition showObject="o_1"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="2.9373179638388747" y="2.0485944396428426" z="1.0"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Circle">
<input a0="Q" a1="D" a2="J"/>
<output a0="e_1"/>
</command>
<element type="conic" label="e_1">
<show object="true" label="false"/>
<condition showObject="o_1"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<lineStyle thickness="13" type="20" typeHidden="1" opacity="178"/>
<eigenvectors x0="1.0" y0="0.0" z0="1.0" x1="-0.0" y1="1.0" z1="1.0"/>
<matrix A0="1.0" A1="1.0" A2="29.37317963838874" A3="0.0" A4="-5.437317963838874" A5="-2.5030557484153277"/>
<eqnStyle style="specific"/>
</element>
<command name="Midpoint">
<input a0="垂心" a1="C"/>
<output a0="R"/>
</command>
<element type="point" label="R">
<show object="true" label="true"/>
<condition showObject="o_1"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="5.874635927677749" y="5.006111496830658" z="1.0"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<command name="Midpoint">
<input a0="垂心" a1="B"/>
<output a0="S"/>
</command>
<element type="point" label="S">
<show object="true" label="true"/>
<condition showObject="o_1"/>
<objColor r="255" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<isShape val="false"/>
<coords x="7.937317963838875" y="2.0485944396428426" z="1.0"/>
<pointSize val="4"/>
<pointStyle val="0"/>
</element>
<element type="boolean" label="o_1">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="113" y="322"/>
<labelMode val="3"/>
<checkbox fixed="true"/>
<caption val="九點圓(選擇重心、垂心、外心)"/>
</element>
</construction>
</geogebra>