飞机与风向量合成交互模拟
几何画板及绘图内容加载中,请稍等……
①本范例动态演示了在二维平面中,喷气飞机的飞行速度向量与环境风向量进行向量加法合成后的合运动轨迹与位置变化。②涉及的核心数学概念包括向量(Vector)、向量加法的平行四边形法则、速度与方向的分解合成,以及参数化坐标几何。③作图要点上,利用 GeoGebra 的 `Vector` 命令构建了飞机速度向量 `vector_j` 和风向量 `vector_w`,通过 `Translate` 命令模拟随时间 `time` 推进的合位移,并结合 `Polygon`、`Segment` 和 `Circle` 命令绘制了飞机多边形 `poly1`、方向指示线及辅助圆。用户可通过滑块自由调节飞机与风的 speed(速度)和 direction(方向)。④该范例适合高中及大学阶段的物理运动学、解析几何与线性代数课程,用于向量合成的直观教学与动态探究。
GeoGebra 命令及参数
Vector((0, 0), StartPoint) → vector_sVector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_wVector((0, 0), (0 + speed_j * cos(direction_j / 180 * 3.14), 0 + speed_j * sin(direction_j / 180 * 3.14))) → vector_jTranslate((-383.74751, 427.82819), Vector[vector_w * time]) → B_9Translate((-101.94722, 122.76974), Vector[vector_w * time]) → B_1Translate((373.59867, -717.66124), Vector[vector_w * time]) → B_2Translate((291.78433, -304.20541), Vector[vector_w * time]) → B_3Translate((-478.63411, 139.75126), Vector[vector_w * time]) → B_4Translate((158.83601, 627.76471), Vector[vector_w * time]) → B_5Translate((-605.40599, -232.82316), Vector[vector_w * time]) → B_6Translate((670.17568, 302.42241), Vector[vector_w * time]) → B_7Translate((218.49231, 305.81139), Vector[vector_w * time]) → B_8Circle(B_1, 100) → c_1Circle(B_2, 50) → c_2Circle(B_3, 80) → c_3Circle(B_4, 50) → c_4Circle(B_8, 75) → c_8Circle(B_7, 100) → c_7Circle(B_5, 20) → cCircle(B_6, 40) → c_6Polygon(A, B, C, D) → poly1, a_1, b, c_5, dPolygon(E, F, G, H) → poly2, e, f, g, hCircle(B_9, 30) → c_9Vector((1500, 600), (1500 + speed_w * cos(direction_w / 180 * 3.14), 600 + speed_w * sin(direction_w / 180 * 3.14))) → vector_1Translate((-1000, 250), Vector[vector_1 * time]) → B_{10}Circle(B_{10}, 80) → c_10Translate((0, 0), Vector[time * vector_j + time * vector_w + vector_s]) → plane_wTranslate(Rotate[pic1, direction_j / 180 * 3.14, (0, 0)], Vector[vector_s + (vector_j + vector_w) * time]) → pic1'Translate((0, 0), Vector[time * vector_j + vector_s]) → planexxnoxxwindSegment(StartPoint, plane_w) → iVector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_2Vector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_3Vector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_4Translate((-1400.59867, 607.66124), Vector[vector_2 * time]) → B_{11}Translate((1300.59867, 617.66124), Vector[vector_4 * time]) → B_{13}Translate((1103.59867, -517.66124), Vector[vector_3 * time]) → B_{12}Circle(B_{13}, 90) → c_13Circle(B_{12}, 50) → c_12Circle(B_{11}, 75) → c_11Vector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_5Vector((0, 0), (0 + speed_w * cos(direction_w / 180 * 3.14), 0 + speed_w * sin(direction_w / 180 * 3.14))) → vector_6Translate((-1473.59867, -717.66124), Vector[vector_5 * time]) → B_{14}Translate((800.59867, -100.66124), Vector[vector_6 * time]) → B_{15}Circle(B_{15}, 50) → c_15Circle(B_{14}, 70) → c_14Polygon(J, L, R, S) → poly3, j_1, l, r, s