太阳在黄道上的路径
几何画板及绘图内容加载中,请稍等……
①这个范例演示了太阳在24小时内穿越天球体的路径;②涉及的核心数学概念包括函数图像、三角函数、解析几何和几何变换;③作图要点使用了GeoGebra命令如Intersect(相交)、If(条件)、Rotate(旋转)、Segment(线段)、Surface(曲面)、Angle(角度)、Plane(平面)、Vector(向量)、Sequence(数列)、Point(点);④适合高中阶段学习天文学和数学的学生使用。
GeoGebra 命令及参数
Intersect(xAxis, yAxis) → AIf(celframe ≟ false, 0°, 90° - lat) → lat3If(celframe ≟ true, 0°, 90° - lat) → lat2Rotate(Circle[A, B], (-lat2), yAxis) → cRotate(Circle[(0, 0, sin(skyang2)), cos(skyang2), zAxis], (-lat2), yAxis) → sunRotate(Circle[A, B], lat3, yAxis) → latsphereIntersect(latsphere, sun) → C, D, ,Segment((0, 0, 0), D) → riselatSurface(((x(A) + (cos(i) * sin(j))) * cos(90° - lat)) + ((z(A) + cos(j)) * sin(90° - lat)), y(A) + (sin(i) * sin(j)), ((-(x(A) + (cos(i) * sin(j)))) * sin(90° - lat)) + ((z(A) + cos(j)) * cos(90° - lat)), i, 0, (2 * π), j, 0, π / 2) → skyhalfSegment((0, 0, 0), D) → riseraySegment(A, North) → northrayAngle(riseray, northray) → azimuthriseSegment(((0.03 * ss), ys, 0), (0, ys, (0.1 * ss))) → stickleg2Segment(((-0.03 * ss), ys, 0), (0, ys, (0.1 * ss))) → stickleg1Segment((0, ys, (0.1 * ss)), (0, ys, (0.2 * ss))) → stickbodySegment(((0.03 * ss), ys, (0.1 * ss)), (0, ys, (0.2 * ss))) → stickarm2Segment(((-0.03 * ss), ys, (0.1 * ss)), (0, ys, (0.2 * ss))) → stickarm1Surface(((x(A) + (cos(i) * sin(j))) * cos(180° + lat3)) + ((z(A) + cos(j)) * sin(180° + lat3)), y(A) + (sin(i) * sin(j)), ((-(x(A) + (cos(i) * sin(j)))) * sin(180° + lat3)) + ((z(A) + cos(j)) * cos(180° + lat3)), i, 0, (2 * π), j, 0, π / 2) → halfspRotate(Translate[stickman, Vector[(0, 0, -0.01)]], lat3, yAxis) → stickfinalRotate(Rotate[Circle[A, B], 90°, xAxis], lat3, yAxis) → meridianPlane((cos(90° - lat3), 0, sin(90° - lat3)), yAxis) → northsouthRotate((0, 0, 1.2), (-lat2), yAxis) → NPRotate(Vector[(0, 0, 0), (0, 0, 1.2)], (-lat2), yAxis) → northpoleVector((0, 0, 0), ((1.2 * cos(90° - lat3)), 0, (1.2 * sin(90° - lat3)))) → uplineSegment((0, 0, 0), C) → setrayAngle(northray, setray, Vector[(-upline)]) → azimuthsetSequence((360 * RandomUniform[0, 1]) + ((0 * i))°, i, 1, nstars) → ranlonSequence((360 * RandomUniform[0, 1]) + ((0 * i))°, i, 1, nstars) → ranlatRotate(Rotate[Sequence[((cos(ranlat(i)) * cos(ranlon(i))), (cos(ranlat(i)) * sin(ranlon(i))), sin(ranlat(i))), i, 1, nstars], spang, zAxis], (-lat2), yAxis) → ranstarsRotate((0, 0, 1), (-lat2), yAxis) → NorthstarPoint(sun, spys) → StarSegment((1.83, 18.1), (1.83, 17.7)) → eq2lineSegment((0.83, 18.1), (0.83, 17.7)) → solslineSegment((-0.18, 18.1), (-0.18, 17.7)) → eq3line