正比例函数坐标图
几何画板及绘图内容加载中,请稍等……
本范例演示在平面直角坐标系中绘制正比例函数图像,帮助学生理解y=kx形式的线性关系。通过输入不同的x值和比例系数k,观察点的坐标变化规律。构造要点:使用Polygon绘制坐标轴网格,Textfield创建输入框供学生输入x值和k值,Sequence命令生成一系列坐标点,Segment连接原点与坐标点形成函数图像,If条件判断验证答案正确性。该范例适合5-6年级学生,用于练习直接比例与反比例的识别、坐标平面内点的表示以及函数概念的理解。
GeoGebra 命令及参数
Join(Sequence[Shuffle[Sequence[n, n, 1, maxexnum]], m, 1, 25]) → listexnumsJoin(Sequence[Shuffle[{1, 2, 3, 4, 5, 6}], i, 1, 9]) → listnumstextIf(exnum ≟ 1, widthcoord1, If[exnum ≟ 2, widthcoord2, widthcoord3]) → widthcoordIf(exnum ≟ 1, heightcoord1, If[exnum ≟ 2, heightcoord2, heightcoord3]) → heightcoordIf(exnum ≟ 1, sizecoordx1, If[exnum ≟ 2, sizecoordx2, sizecoordx3]) → sizecoordxIf(exnum ≟ 1, sizecoordy1, If[exnum ≟ 2, sizecoordy2, sizecoordy3]) → sizecoordyIf(exnum ≟ 1, O1, If[exnum ≟ 2, O2, O3]) → OTextfield(input1) → InputBox1Textfield(input2) → InputBox2If(exnum < 4, correct1 ∧ correct2 ∧ correct3, correct1a ∧ correct2a ∧ correct3a) → correctPolygon(PtopLeftCornerFeedback, PtopRightCornerFeedback, PbottomRightCornerFeedback, PbottomLeftCornerFeedback) → rectangleCorrect, rectangleCorrectS3, rectangleCorrectS4, rectangleCorrectS2, rectangleCorrectS1Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForX, {10, 5, 7, 4, 4, 8, 6, 7, 10, 5, 6, 0, 10, 1, 10, 7, 7, 3, 10, 5, 9, 3, 4, 9, 1, 10, 5, 6, 6, 6, 0, 1, 10, 7, 8, 4, 3, 0, 10, 1, 1, 1, 5, 9, 2, 5, 5, 4, 10, 2, 9, 5, 7, 9, 0, 1, 4, 1, 2, 6, 4, 4, 9, 8, 4, 0, 6, 8, 5, 10, 1, 9, 8, 1, 3, 2, 7, 10, 2, 9, 0, 3, 0, 4, 0, 5, 5, 4, 3, 10, 7, 8, 0, 2, 1, 7, 9, 0, 3, 10}Element(randomNosForX, Mod[questionCount, 100] + 1) → numXShuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForY, {9, 4, 10, 3, 8, 0, 9, 1, 9, 8, 9, 1, 3, 1, 3, 2, 2, 0, 5, 8, 1, 4, 4, 1, 6, 8, 0, 4, 0, 0, 4, 6, 8, 10, 6, 0, 9, 5, 7, 6, 0, 10, 1, 3, 2, 0, 5, 5, 10, 8, 1, 1, 6, 3, 3, 8, 8, 7, 3, 6, 9, 4, 6, 3, 9, 3, 6, 9, 2, 8, 5, 9, 6, 4, 10, 10, 1, 6, 4, 5, 6, 9, 10, 7, 6, 4, 7, 4, 2, 7, 1, 4, 7, 8, 2, 3, 1, 6, 1, 0}Element(randomNosForY, Mod[questionCount, 100] + 1) → numYAppend(true, Sequence[If[randomNosForY(i) ≟ randomNosForY(i - 1), false, true], i, 2, 100]) → stayYRemove(Sequence[If[stayY(i), randomNosForY(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForYwithoutRepeatElement(randomNosForYwithoutRepeat, Mod[questionCount, Length[randomNosForYwithoutRepeat]] + 1) → numYwithoutRepeatIf(exnum < 3, Defined[((input1 * input2) * input3)], If[exnum ≟ 3, Defined[(input1 * input2)], (inputline1 ∨ inputpoint1) ∧ (inputline2 ∨ inputpoint2) ∧ (inputline3 ∨ inputpoint3)]) → fixedIf(exnum ≟ 3, correct1 ∨ correct2 ∧ (¬correct), If[exnum < 4, correct1 ∨ correct2 ∨ correct3 ∧ (¬correct), correct1a ∨ correct2a ∨ correct3a ∧ (¬correct)]) → correctpartiallyTextfield(input3) → InputBox3Flatten(Sequence[Sequence[O + (m * (sizecoordx, 0)) + (j * (0, sizecoordy)), m, 0, widthcoord - 1], j, 0, heightcoord]) → l1Sequence(O + (m * (sizecoordx, 0)), m, 1, widthcoord - 2) → pointsxSequence(O + (m * (0, sizecoordy)), m, 1, heightcoord - 1) → pointsyZip(Segment[A + (0, (-heightlines)), A + (0, heightlines)], A, pointsx) → linesxZip(Segment[A + ((-heightlines), 0), A + (heightlines, 0)], A, pointsy) → linesySequence(Text[(("\textsf{" * ReplaceAll["" + ((m * 2)) + "", ".", ","]) * "}"), (x(O) - 0.5, (m * sizecoordy) + y(O) - 0.3), true, true, -0, 1], m, 1, heightcoord - 1) → texty1Segment(l1(1), l1((heightcoord * widthcoord) + 1)) → ylineSegment(l1(1), l1(widthcoord)) → xlineTranslate({(0, 0), ((sizecoordx * 1), (sizecoordy / 2 * 4)), ((sizecoordx * 2), (sizecoordy / 2 * 8)), ((sizecoordx * 3), (sizecoordy / 2 * 12)), ((sizecoordx * 4), (sizecoordy / 2 * 16)), ((sizecoordx * 5), (sizecoordy / 2 * 20))}, O) → p1Join({Sequence[Text["\textsf{" + (m) + "}", ((m * sizecoordx) + x(O), y(O) - 0.7), true, true, -0, 1], m, 0, 0], Sequence[Text["\textsf{" + (m) + ((" 000" * "}")), ((m * sizecoordx) + x(O), y(O) - 0.7), true, true, -0, 1], m, 1, widthcoord - 2]}) → textx2Sequence(Text[(("\textsf{" * ReplaceAll["" + ((m * 100)) + "", ".", ","]) * "}"), (x(O) - 0.5, (m * sizecoordy) + y(O) - 0.3), true, true, -0, 1], m, 1, heightcoord - 1) → texty3If(exnum ≟ 1, Pos1a, If[exnum ≟ 2, Pos1b, Pos1c]) → Pos1If(exnum ≟ 1, Pos2a, If[exnum ≟ 2, Pos2b, Pos2c]) → Pos2If(exnum ≟ 1, Pos3a, Pos3b) → Pos3Zip(¬A, A, listpointstrue) → listlinetrueSpeechBubbleRight(A, 5.5, 1.5) → Vieleck0Point(Line[C, xAxis]) → DPoint(Line[E, xAxis]) → FSpeechBubbleRight(B, 8.1, 0.8) → Vieleck1Point(Line[G, xAxis]) → HSpeechBubbleRight(I, 8.3, 1) → Vieleck45Translate({((sizecoordx * 1), (sizecoordy / 100 * 120)), ((sizecoordx * 5), (sizecoordy / 100 * 600))}, O) → hintp3Translate({(0, 0), ((sizecoordx * 2), (sizecoordy / 2 * 8)), ((sizecoordx * 4), (sizecoordy / 2 * 16))}, O) → hintp1Translate({((sizecoordx * 2), (sizecoordy / 10 * 20)), ((sizecoordx * 3), (sizecoordy / 10 * 30)), ((sizecoordx * 5), (sizecoordy / 10 * 50))}, O) → hintp2SpeechBubbleRight(S, 9.7, 0.8) → Vieleck2SpeechBubbleRight(R, 8.7, 0.9) → Vieleck3Sequence(Text[(("\textsf{" * ReplaceAll["" + ((m * 10)) + "", ".", ","]) * "}"), (x(O) - 0.5, (m * sizecoordy) + y(O) - 0.3), true, true, -0, 1], m, 1, heightcoord - 1) → texty2Sequence(Text["\textsf{" + (m) + "}", ((m * sizecoordx) + x(O), y(O) - 0.7), true, true, 0, 1], m, 0, widthcoord - 2) → textx3Translate({(0, 0), (sizecoordx, (sizecoordy / 100 * 120)), ((sizecoordx * 2), (sizecoordy / 100 * 240)), ((sizecoordx * 3), (sizecoordy / 100 * 360)), ((sizecoordx * 4), (sizecoordy / 100 * 480)), ((sizecoordx * 5), (sizecoordy / 100 * 600))}, O) → p3Join({Sequence[Segment[l1((widthcoord * m) + 1), l1(((m + 1) * widthcoord))], m, 0, heightcoord], Sequence[Segment[l1(m), l1((widthcoord * heightcoord) + m)], m, 1, widthcoord]}) → linescoordJoin({Sequence[Text["\textsf{" + (m) + "}", ((m * sizecoordx) + x(O), y(O) - 0.7), true, true, -0, 1], m, 0, 0], Sequence[Text["\textsf{" + (m) + (("" * "}")), ((m * sizecoordx) + x(O), y(O) - 0.7), true, true, -0, 1], m, 1, widthcoord - 2]}) → textx1Element({R1, R2, R3, R4, R4}, exnum) → R0