坐标系中的平行四边形:向量构造与几何验证
几何画板及绘图内容加载中,请稍等……
本范例演示如何在坐标系中用向量与直线/点的几何关系构造一个平行四边形,并让学生观察其边的平行与对边等长的性质。核心数学概念包括:平行四边形的定义、向量表示与向量平移关系、坐标几何中的点与线、以及用多边形对象生成图形并进行一致性校验。作图要点:在构造摘要中使用了 Sequence、Shuffle、Join 生成随机/批量候选数据;用 Vector、Line 与 Point 搭建几何骨架;通过 Intersect、Polygon 将相关几何对象组合成平行四边形;为保证构造可行性与区域约束,使用了 IsInRegion、RemoveUndefined、If 等条件与清理;同时借助 Angle、Textfield/文本(Text、Append)进行角度标注与参数呈现。对象层面体现为 Ursprung(原点)、向量 ux/uy 及候选点列表(AXList、AYList 等)、以及最终的多边形元素(如 A、aCoords、QE1~QE4、coordsystem)。适合5-6年级的特殊四边形构造训练,亦可用于课堂演示:让学生在交互式环境中理解向量构造与坐标系几何的对应关系。
GeoGebra 命令及参数
Sequence(Sequence[(i, k), k, 0, 8], i, 0, 8) → PunkteFeldShuffle(Sequence[1, 7]) → HelperX, {2, 3, 5, 1, 4, 6, 7}Join({{0}, HelperX}) → UrsprungXListeShuffle(Sequence[1, 7]) → HelperY, {5, 2, 4, 1, 7, 3, 6}Join({{0}, HelperY}) → UrsprungYListeShuffle(Sequence[1, 7]) → AYList, {5, 2, 6, 1, 4, 7, 3}Shuffle(Sequence[1, 7]) → AXList, {3, 5, 7, 2, 6, 4, 1}Vector(Ursprung, A) → aCoordsLine(A, A + (-1, 0)) → iLine(A, A + (0, 1)) → hMax({distanceAnegX, distanceAposX, distanceAnegY, distanceAposY}) → maxfShuffle(Sequence[3, maxf - 1, 1]) → fList, {3, 4}Random(1, fwert - 1) → erandoCircle(A, fwert) → cIntersect(c, h) → CSucheNegY, CSuchePosYIntersect(c, i) → CSuchePosX, CSucheNegXPolygon(QE1, QE2, QE3, QE4) → coordsystem, qe1, qe2, qe3, qe4RemoveUndefined({If[IsInRegion[CSuchePosY, coordsystem], y(CSuchePosY)], If[IsInRegion[CSuchePosX, coordsystem], y(CSuchePosX)], If[IsInRegion[CSucheNegX, coordsystem], y(CSucheNegX)], If[IsInRegion[CSucheNegY, coordsystem], y(CSucheNegY)]}) → CyOptionenRemoveUndefined({If[IsInRegion[CSuchePosY, coordsystem], x(CSuchePosY)], If[IsInRegion[CSuchePosX, coordsystem], x(CSuchePosX)], If[IsInRegion[CSucheNegX, coordsystem], x(CSucheNegX)], If[IsInRegion[CSucheNegY, coordsystem], x(CSucheNegY)]}) → CxOptionenRandom(1, Length[CxOptionen]) → CrandoVector(Ursprung, C) → cCoordsSegment(A, C) → jOrthogonalLine(MittelpunktDeltoid, j) → kPoint(PunkteFeld) → InputPunktMin(AbstaendeMittelpunkt) → maxeShuffle(Sequence[1, maxe]) → eList, {1}Circle(MittelpunktDeltoid, ewert) → dIntersect(d, k) → D, BVector(Ursprung, DNew) → dCoordsVector(Ursprung, B) → bCoordsShuffle({2, 4}) → gesuchtList, {2, 4}If(gesucht ≟ 1, x(aCoords), gesucht ≟ 2, x(bCoords), gesucht ≟ 3, x(cCoords), gesucht ≟ 4, x(dCoords)) → solxIf(gesucht ≟ 1, y(aCoords), gesucht ≟ 2, y(bCoords), gesucht ≟ 3, y(cCoords), gesucht ≟ 4, y(dCoords)) → solyCircle(SolPunkt, 0.35) → ValidateCircleIsInRegion(InputPunkt, ValidateCircle) → correctInputPunktTextfield(input1) → InputBox1Textfield(input2) → InputBox2Polygon(PtopLeftCornerFeedback, PtopRightCornerFeedback, PbottomRightCornerFeedback, PbottomLeftCornerFeedback) → rectangleCorrect, rectangleCorrectS3, rectangleCorrectS4, rectangleCorrectS2, rectangleCorrectS1Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForX, {4, 5, 6, 3, 5, 8, 4, 9, 3, 10, 1, 0, 10, 10, 1, 6, 8, 2, 9, 2, 1, 5, 10, 8, 9, 4, 7, 6, 10, 2, 5, 7, 10, 5, 10, 6, 3, 10, 6, 4, 10, 8, 2, 0, 3, 3, 6, 6, 1, 10, 5, 10, 8, 1, 8, 0, 1, 9, 8, 10, 0, 7, 9, 8, 5, 7, 2, 8, 0, 4, 3, 0, 7, 6, 9, 3, 10, 7, 1, 3, 0, 9, 4, 8, 4, 4, 10, 8, 5, 8, 2, 7, 1, 5, 8, 10, 9, 3, 8, 6}Element(randomNosForX, Mod[questionCount, 100] + 1) → numXShuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForY, {0, 5, 4, 7, 2, 2, 9, 3, 8, 9, 8, 9, 2, 2, 4, 7, 3, 10, 6, 10, 10, 10, 5, 5, 4, 10, 4, 0, 2, 1, 8, 7, 3, 7, 8, 7, 10, 7, 0, 6, 5, 0, 10, 7, 7, 5, 0, 10, 8, 0, 5, 1, 3, 1, 9, 4, 3, 9, 5, 0, 0, 6, 0, 2, 8, 4, 5, 8, 6, 6, 8, 2, 5, 8, 2, 5, 1, 4, 2, 7, 2, 0, 8, 10, 5, 10, 10, 10, 4, 1, 1, 6, 1, 8, 2, 1, 2, 7, 5, 5}Element(randomNosForY, Mod[questionCount, 100] + 1) → numYAppend(true, Sequence[If[randomNosForX(i) ≟ randomNosForX(i - 1), false, true], i, 2, 100]) → stayXAppend(true, Sequence[If[randomNosForY(i) ≟ randomNosForY(i - 1), false, true], i, 2, 100]) → stayYRemove(Sequence[If[stayX(i), randomNosForX(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForXwithoutRepeatRemove(Sequence[If[stayY(i), randomNosForY(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForYwithoutRepeatElement(randomNosForXwithoutRepeat, Mod[questionCount, Length[randomNosForXwithoutRepeat]] + 1) → numXwithoutRepeatElement(randomNosForYwithoutRepeat, Mod[questionCount, Length[randomNosForYwithoutRepeat]] + 1) → numYwithoutRepeatSequence(QE4 + (Vector[QE4, QE3] / 8 * i), i, 1, 7) → GrenzPunkteObenSequence(QE1 + (Vector[QE1, QE2] / 8 * i), i, 1, 7) → GrenzPunkteUntenSequence(QE1 + (Vector[QE1, QE4] / 8 * i), i, 1, 7) → GrenzPunkteLinksSequence(QE2 + (Vector[QE1, QE4] / 8 * i), i, 1, 7) → GrenzPunkteRechtsSequence(Segment[GrenzPunkteOben(i), GrenzPunkteUnten(i)], i, 1, 9) → GitterVertikalSequence(Segment[GrenzPunkteRechts(i), GrenzPunkteLinks(i)], i, 1, 9) → GitterHorizontalLine(Ursprung, HelpP1) → fLine(Ursprung, HelpP2) → gIntersect(g, QuadratKanten(2)) → EndXPosIntersect(g, QuadratKanten(4)) → EndXNegIntersect(f, QuadratKanten(1)) → EndYNegIntersect(f, QuadratKanten(3)) → EndYPosSegment(EndYPos, EndYNeg) → yAchselSegment(EndXPos, EndXNeg) → xAchselPolygon(C, B, A, DNew) → v1, l, m, n, pSegment(C, B) → solbSegment(B, A) → solaSequence(EndXNeg + (Vector[EndXNeg, EndXPos] * i / 8), i, 0, 8) → AchsenpunkteXSequence(EndYNeg + (Vector[EndYNeg, EndYPos] * i / 8), i, 0, 8) → AchsenpunkteYSequence(Distance[AchsenpunkteX(i), Ursprung], i, 1, 9) → BeschriftungXAchseSequence(Distance[AchsenpunkteY(i), Ursprung], i, 1, 9) → BeschriftungYAchseVector(Ursprung, InputPunkt) → OrangeCoordsSegment(A, DNew) → soldSegment(DNew, C) → solcIntersect(Line[A, C], Line[DNew, B]) → CenterText(BeschA, E, false, true, 0, 0) → Text4Angle(DNew, A, B) → αText(BeschB, F, false, true, 0, 0) → Text5Text(BeschC, G, false, true, 0, 0) → Text6Text(BeschD, H, false, true, 0, 0) → Text7Circle(InputPunkt, 0.3) → eText(correctText, I, false, true, 0, 0) → Text13
AI 绘图提示语参考
在坐标系中构造一个平行四边形。起点为原点,用向量定义两条边,画两条垂直线并画一个圆,圆与这两条线相交得到两个点。将这些点与原点连接,形成平行四边形。构造顺序:先确定原点,定义向量,画垂直线和圆,求交点,最后连接顶点。
以上提示语为根据原始绘图命令整理而来,仅供参考。