角内光线反射简化模型
几何画板及绘图内容加载中,请稍等……
所属专题
Light
本范例展示了光线在角内反射的简化模型。通过调整角的大小和光线的入射角度,观察反射光线的路径变化。涉及的核心数学概念包括反射定律、向量和角度。使用了UnitVector、Ray、Intersect等GeoGebra命令进行构造。适合初中及以上学生学习几何反射和向量概念。
GeoGebra 命令及参数
UnitVector(xAxis) → XCorner(imgWhite, 3) → crn3DynamicCoordinates(P', x(Corner[4] + P'' / ppu), y(Corner[4] + P'' / ppu)) → PPolygon(P, p2, p3, p4) → panel, pnl1, pnl2_1, pnl3, pnl4Polygon(P2, P2 + (w, 0), P2 + (w, h), P2 + (0, h)) → pnl2, a_1, b_1, c, d_1Midpoint(auxSl1, auxSl2) → auxSl3Segment(auxSl1, auxSl2) → dPoint(d) → sl'If(sgn(x(sl' - Midpoint[d])) ≤ 0, auxSl1, auxSl2) → sl''DynamicCoordinates(sl', x(sl''), y(sl'')) → slIf(sgn(x(sl' - Midpoint[d])) ≤ 0, 1, 2) → dexSlIntersect(xAxis, yAxis) → O'Ray(O, X) → l0Arc1(O, aux1, O - X) → rngαPoint(rngα) → P_αVector(O, P_α) → u1Ray(O, P_α) → l1Angle2(aux1, O, P_α) → αAngle(O + (2 * X), O, O + (2 * (P_α - O))) → α'Point(l0) → X0Arc1(X0, X0 + X, X0 - X) → rngθPoint(rngθ) → L0Vector(X0, L0) → R0Arc1(X0, X0 + X, L0) → arcθAngle2(X0 + X, X0, L0) → θMin(128, floor(abs(θ / α))) → mMod(m, 2) → m'Max(0, floor(xm)) → jMod(j, 2) → j'Sequence(k, k, 0, m) → nkZip((k, f(k)), k, nk) → bouncesZip(O + (k1 * If[Mod[k2, 2] ≟ 0, X, u1]), k1, times, k2, nk) → XkTake(Xk, 2, m + 1) → Xk'PolyLine(Xk) → rayPathVector(If[m' ≟ 0, z_1, conjugate(z_1)]) → RmElement(Xk', m) → XmRay(Xm, Rm) → rayPathTermSequence((2 * k), k, 0, floor(m / 2)) → kevSequence((2 * k) - 1, k, 1, ceil(m / 2)) → kodZip((k, f(k)), k, kev) → yevElement(bounces, y(DexEv) + 1) → MaxEvElement(bounces, x(DexEv) + 1) → mnEvSegmentLabel1((-1, y(mnEv)), (-1, y(MaxEv)), 0.25, 0.12, 0.07, 0, 0.5) → lbl_t, lblRngt'Element(Xk, j + j' + 1) → A'Element(Xk, y(DexEv) + 1) → B'SegmentLabel1(A', B', -0.25, 0.12, 0.07, 0, 0.5) → lblt2, lblRngtZip((k, f(k)), k, kod) → yodElement(bounces, x(DexOd) + 1) → mnOdElement(bounces, y(DexOd) + 1) → MaxOdSegmentLabel1(((-0.5), y(mnOd)), ((-0.5), y(MaxOd)), 0.25, 0.12, 0.07, 0, 0.5) → lbl_τ, lblRngτ'Element(Xk', j - j' + 1) → C'Element(Xk', y(DexOd)) → D'SegmentLabel1(C', D', 0.25, 0.12, 0.07, 0, 0.5) → lblτ2, lblRngτPoint(list1) → AMod(IndexOf[A, list1] - 1, 2) → dex4Point(list1') → B