Construction and Properties of the Triangle Centroid
2012-12-30 22:28
This applet demonstrates the step-by-step geometric construction of a triangle's centroid. Users can manipulate the vertices of the triangle to explore how the centroid behaves under different configurations. The construction process begins by locating the midpoint of each side of the triangle, then drawing the three medians—line segments connecting each vertex to the midpoint of the opposite side. The point where all three medians intersect is identified as the centroid, which remains the balance point of the triangle regardless of its shape or size.
The applet goes beyond mere construction by actively verifying one of the most important properties of the centroid: it divides each median into a 2:1 ratio. Using GeoGebra's distance measurement tools, the applet displays the lengths from each vertex to the centroid and from the centroid to the corresponding midpoint on the opposite side. These measurements confirm that the segment from the vertex to the centroid is always exactly twice as long as the segment from the centroid to the midpoint, providing clear numerical and visual evidence of this classical geometric theorem.
Students benefit from this interactive exploration in several ways. First, the dynamic nature of the applet allows learners to drag vertices around and observe that the centroid property holds universally, reinforcing the idea that geometric relationships are invariant under transformation. Second, the immediate feedback from the distance measurements helps bridge the gap between abstract theory and concrete understanding. Third, the step-by-step construction guides students through the logical process of defining and locating the centroid, building confidence in geometric reasoning. This applet serves as an excellent tool for both introducing the concept of the centroid and reinforcing the proof of its proportional division property, making it suitable for introductory geometry courses and self-directed learning environments.
Loading the math board and drawing, please wait…
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="4.2" version="4.2.13.0" id="e57bdf51-0116-4874-a75a-791cecc3275f" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="132" height="38" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.09736456808199122" orientation="1" />
</panes>
<views>
<view id="4097" visible="false" inframe="true" stylebar="true" location="1,1,1" size="400" window="333,89,700,550" />
<view id="4" toolbar="0 59 || 2020 , 2021 , 2022 , 66 || 2001 , 2003 , 2002 , 2004 , 2005 || 2040 , 2041 , 2042 , 2044 , 2043" visible="false" inframe="false" stylebar="true" location="1,1" size="300" window="100,100,600,400" />
<view id="8" toolbar="1001 | 1002 | 1003 || 1005 | 1004 || 1006 | 1007 | 1010 | 1011 || 1008 1009 || 6" visible="false" inframe="false" stylebar="true" location="1,3" size="300" window="100,100,600,400" />
<view id="1" visible="true" inframe="false" stylebar="false" location="1" size="1364" window="100,100,600,400" />
<view id="2" visible="false" inframe="false" stylebar="false" location="3" size="133" window="100,100,250,400" />
<view id="16" visible="false" inframe="false" stylebar="false" location="1" size="145" window="50,50,500,500" />
<view id="32" visible="false" inframe="false" stylebar="true" location="1" size="129" window="50,50,500,500" />
<view id="64" 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 59 | 1 501 67 , 5 19 , 72 | 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 | 30 29 54 32 31 33 | 17 26 62 73 , 14 66 68 | 25 52 60 61 | 40 41 42 , 27 28 35 , 6" position="1" help="true" />
<input show="true" cmd="true" top="false" />
<dockBar show="true" east="true" />
</perspective>
</perspectives>
<labelingStyle val="3"/>
<font size="12"/>
<graphicsSettings javaLatexFonts="false"/>
</gui>
<euclidianView>
<size width="1364" height="455"/>
<coordSystem xZero="215.0" yZero="314.9999999999999" scale="50.0" yscale="49.999999999999986"/>
<evSettings axes="false" grid="false" gridIsBold="false" pointCapturing="3" rightAngleStyle="1" checkboxSize="26" gridType="0"/>
<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="10"/>
<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="true"/>
<usePathAndRegionParameters val="true"/>
<decimals val="2"/>
<angleUnit val="degree"/>
<algebraStyle val="0"/>
<coordStyle val="0"/>
<angleFromInvTrig val="false"/>
</kernel>
<scripting blocked="false" disabled="false"/>
<construction title="三角形重心(相關說明)" author="lihsing.zen" date="30 12 月 2012">
<element type="point" label="A">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="3" y="3"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<auxiliary val="true"/>
<coords x="8.46" y="4.96" z="1.0"/>
<pointSize val="9"/>
<pointStyle val="0"/>
</element>
<element type="point" label="B">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-20" y="15"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="2.7" y="-3.62" z="1.0"/>
<pointSize val="9"/>
<pointStyle val="0"/>
</element>
<element type="point" label="C">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="5" y="17"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="17.84" y="-3.7" z="1.0"/>
<pointSize val="9"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="A" a1="B"/>
<output a0="a"/>
</command>
<element type="segment" label="a">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="8.58" y="-5.760000000000001" z="-44.0172"/>
<lineStyle thickness="9" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="A" a1="C"/>
<output a0="b"/>
</command>
<element type="segment" label="b">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="8.66" y="9.379999999999999" z="-119.78840000000001"/>
<lineStyle thickness="9" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="B" a1="C"/>
<output a0="c"/>
</command>
<element type="segment" label="c">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="0.08000000000000007" y="15.14" z="54.590799999999994"/>
<lineStyle thickness="9" type="0" typeHidden="1"/>
<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"/>
<condition showObject="g"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-24" y="2"/>
<labelMode val="0"/>
<coords x="5.58" y="0.6699999999999999" z="1.0"/>
<pointSize val="7"/>
<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"/>
<condition showObject="h"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="-3" y="34"/>
<labelMode val="0"/>
<coords x="10.27" y="-3.66" z="1.0"/>
<pointSize val="7"/>
<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"/>
<condition showObject="i"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="13.15" y="0.6299999999999999" z="1.0"/>
<pointSize val="7"/>
<pointStyle val="0"/>
</element>
<command name="Segment">
<input a0="A" a1="E"/>
<output a0="d"/>
</command>
<element type="segment" label="d">
<show object="true" label="false"/>
<condition showObject="l"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="8.620000000000001" y="1.8099999999999987" z="-81.9028"/>
<lineStyle thickness="9" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="B" a1="F"/>
<output a0="e"/>
</command>
<element type="segment" label="e">
<show object="true" label="false"/>
<condition showObject="m"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-4.25" y="10.45" z="49.304"/>
<lineStyle thickness="9" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Segment">
<input a0="C" a1="D"/>
<output a0="f"/>
</command>
<element type="segment" label="f">
<show object="true" label="false"/>
<condition showObject="k"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<coords x="-4.37" y="-12.26" z="32.5988"/>
<lineStyle thickness="9" type="0" typeHidden="1"/>
<outlyingIntersections val="false"/>
<keepTypeOnTransform val="true"/>
</element>
<command name="Intersect">
<input a0="d" a1="e"/>
<output a0="G"/>
</command>
<element type="point" label="G">
<show object="true" label="false"/>
<condition showObject="j"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="9" y="-18"/>
<labelMode val="0"/>
<coords x="945.1244999999999" y="-76.91358000000002" z="97.7715"/>
<pointSize val="9"/>
<pointStyle val="0"/>
</element>
<expression label="text1" exp=""A""/>
<element type="text" label="text1">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint exp="A"/>
<labelOffset x="-15" y="-17"/>
</element>
<expression label="text2" exp=""B""/>
<element type="text" label="text2">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint exp="B"/>
<labelOffset x="-44" y="33"/>
</element>
<expression label="text3" exp=""C""/>
<element type="text" label="text3">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint exp="C"/>
<labelOffset x="11" y="33"/>
</element>
<expression label="text4" exp=""G""/>
<element type="text" label="text4">
<show object="true" label="false"/>
<condition showObject="j"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint exp="G"/>
<labelOffset x="41" y="14"/>
</element>
<expression label="text5" exp=""D""/>
<element type="text" label="text5">
<show object="true" label="false"/>
<condition showObject="g"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint exp="D"/>
<labelOffset x="-41" y="0"/>
</element>
<expression label="text6" exp=""E""/>
<element type="text" label="text6">
<show object="true" label="false"/>
<condition showObject="h"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint exp="E"/>
<labelOffset x="-14" y="55"/>
</element>
<expression label="text7" exp=""F""/>
<element type="text" label="text7">
<show object="true" label="false"/>
<condition showObject="i"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint exp="F"/>
<labelOffset x="11" y="-7"/>
</element>
<element type="boolean" label="g">
<value val="false"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="13" y="44"/>
<labelMode val="0"/>
<tooltipMode val="3"/>
<checkbox fixed="true"/>
<caption val="AB線段中點"/>
</element>
<element type="boolean" label="h">
<value val="false"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="13" y="107"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="BC線段中點"/>
</element>
<element type="boolean" label="i">
<value val="false"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="13" y="166"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="AC線段中點"/>
</element>
<element type="boolean" label="j">
<value val="false"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="13" y="404"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="中線交點"/>
</element>
<element type="boolean" label="k">
<value val="false"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="14" y="225"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="AB線段中線"/>
</element>
<element type="boolean" label="l">
<value val="false"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="13" y="280"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="BC線段中線"/>
</element>
<element type="boolean" label="m">
<value val="false"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="13" y="343"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="AC線段中線"/>
</element>
<expression label="text8" exp=""AB線段中點""/>
<element type="text" label="text8">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint x="-3.3599999999999994" y="4.800000000000001" z="1.0"/>
</element>
<expression label="text9" exp=""BC線段中點""/>
<element type="text" label="text9">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<fixed val="true"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint x="-3.38" y="3.5199999999999987" z="1.0"/>
</element>
<expression label="text10" exp=""AC線段中點""/>
<element type="text" label="text10">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<fixed val="true"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint x="-3.3600000000000003" y="2.3599999999999985" z="1.0"/>
</element>
<expression label="text11" exp=""AB線段中線""/>
<element type="text" label="text11">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<fixed val="true"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint x="-3.3200000000000003" y="1.1799999999999982" z="1.0"/>
</element>
<expression label="text12" exp=""BC線段中線""/>
<element type="text" label="text12">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<fixed val="true"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint x="-3.4" y="0.05999999999999778" z="1.0"/>
</element>
<expression label="text13" exp=""AC線段中線""/>
<element type="text" label="text13">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<fixed val="true"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint x="-3.3400000000000007" y="-1.2000000000000028" z="1.0"/>
</element>
<expression label="text14" exp=""中線交點""/>
<element type="text" label="text14">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<fixed val="true"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint x="-3.46" y="-2.320000000000003" z="1.0"/>
</element>
<command name="Distance">
<input a0="A" a1="G"/>
<output a0="distanceAG"/>
</command>
<element type="numeric" label="distanceAG">
<value val="5.871986224628105"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
</element>
<expression label="文字AG" exp=""\overline{" + (Name[A]) + "" + (Name[G]) + "} \, = \, " + (LaTeX[distanceAG]) + """ />
<element type="text" label="文字AG">
<show object="true" label="false"/>
<condition showObject="n"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<bgColor r="255" g="255" b="255" alpha="255"/>
<layer val="1"/>
<labelMode val="0"/>
<isLaTeX val="true"/>
<font serif="false" sizeM="3.3" size="28" style="0"/>
<startPoint exp="H"/>
<labelOffset x="-79" y="13"/>
</element>
<command name="Midpoint">
<input a0="A" a1="G"/>
<output a0="H"/>
</command>
<element type="point" label="H">
<show object="false" label="true"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<coords x="9.063333333333333" y="2.0866666666666664" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Midpoint">
<input a0="G" a1="E"/>
<output a0="I"/>
</command>
<element type="point" label="I">
<show object="false" label="true"/>
<objColor r="68" g="68" b="68" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<coords x="9.968333333333334" y="-2.2233333333333336" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<command name="Distance">
<input a0="G" a1="E"/>
<output a0="distanceGE"/>
</command>
<element type="numeric" label="distanceGE">
<value val="2.935993112314052"/>
<objColor r="0" g="0" b="0" alpha="0.1"/>
</element>
<expression label="文字GE" exp=""\overline{" + (Name[G]) + "" + (Name[E]) + "} \, = \, " + (LaTeX[distanceGE]) + """ />
<element type="text" label="文字GE">
<show object="true" label="false"/>
<condition showObject="o"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<bgColor r="255" g="255" b="255" alpha="255"/>
<layer val="1"/>
<labelMode val="0"/>
<isLaTeX val="true"/>
<font serif="false" sizeM="3.3" size="28" style="0"/>
<startPoint exp="I"/>
<labelOffset x="-78" y="-17"/>
</element>
<element type="boolean" label="n">
<value val="false"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="14" y="456"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="AG線段長"/>
</element>
<element type="boolean" label="o">
<value val="false"/>
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelOffset x="14" y="511"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="GE線段長"/>
</element>
<expression label="text15" exp=""AG線段長""/>
<element type="text" label="text15">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<fixed val="true"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint x="-3.34" y="-3.4600000000000035" z="1.0"/>
</element>
<expression label="text16" exp=""GE線段長""/>
<element type="text" label="text16">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="1"/>
<labelMode val="0"/>
<fixed val="true"/>
<font serif="false" sizeM="4.0" size="36" style="0"/>
<startPoint x="-3.36" y="-4.540000000000004" z="1.0"/>
</element>
</construction>
</geogebra>