夜雨聆风学习资料网

ARTICLE · 1250169

一位高中地理老师,用 WorkBuddy 做出太阳系 3D 演示系统的全过程

一位高中地理老师,用 WorkBuddy 做出太阳系 3D 演示系统的全过程

一、黑板画不出来的那个太阳系

教高中地理第一年,我在黑板上画过这样一个图:中间一个圆写“太阳”,外面八个圆,一圈一圈套着。

学生点头。我也点头。然后月考,问“天体系统的层级由小到大排列”,一半人写错。

问题不出在学生。问题在我那张图——它是平的。行星不会转,晨昏线是两根粉笔线,“同向性、共面性、近圆性”这九个字我只能用嘴说,学生拿什么去共面?上学期讲“地球运动”,我讲到太阳高度角,公式 H = 90° − |φ − δ| 写得工工整整,底下有个孩子小声问:“老师,那太阳到底在哪儿?”

我答不上来。因为黑板上太阳不在哪儿,它只是我画的一个圆。

后来我开始用 WorkBuddy。它不是“帮我写段代码”的工具,更像一个能听你说话的施工队——你说要什么,它去建,建完给你看,你说不对,它再改。几个月下来,我用它把这一节课做成了一个能转、能飞、能贴近看地表的太阳系 3D 演示系统。

最终交付物是这个东西:

项目
结果
文件
一个 太阳系.html,60.57 MB
打开方式
双击,用 Chrome 或 Edge 打开
是否需要联网
不需要。拔掉网线照样跑
是否需要安装软件
不需要。没有 Node、没有服务器、没有依赖
内容
太阳 + 八大行星 + 16 颗卫星 + 14,144 颗近地轨道人造卫星
贴图
地球、火星、木星、月球 8192×4096;其余行星与木卫 4096×2048;小卫星 2048×1024
装进 U 盘
可以。整个便携包 47.03 MB,含使用说明

这篇文章把我从“想”到“能用”的全过程写清楚。我不会贴代码——我一行都看不懂——但我会把该跟它说什么话一句一句写出来。你照着念,能做成。


二、先想清楚:它要补哪几个短板

动手之前我干了一件事:把教材翻开,把“我讲不清、学生想不通”的地方一条条抄下来。

这张纸后来成了整份需求的骨架。先说教学,再说技术——这一步千万别省,省了后面全是白改。

讲不清的地方
教材位置
系统里对应的东西
天体系统分几级、八大行星什么顺序
必修一 1.1
3D 全景 + 左侧目录,点谁飞谁
同向性、共面性、近圆性
必修一 1.1
公转轨道线 + 0.2~40 天/秒 可调时间轴
晨昏线到底在哪、昼夜怎么分
必修一 1.2 / 选必一 1.2
一个「晨昏线」机位按钮,一键把分界线摆到画面正中
太阳高度角、地方时怎么算
选必一 1.2
「教室视角」,按本校经纬度算当地太阳时与太阳高度角
月相变化、相位角是什么
选必一 1.2
「相位」面板,实时给相位角、光照面比例、距角
月球和火星探测到底做到哪一步
选择性必修
「探月·探火」任务表,38 条,标清已实现/计划中/推迟

抄完这张纸,我心里那句“我想要个太阳系”就变成了“我要一个能回答这六个问题的东西”。这是两回事。


三、开工前,我给 WorkBuddy 立了四条规矩

对着它说的第一句话,不是“帮我做个太阳系”。

我先立规矩。这四条是后来吃过亏才明白必须写死在开头的:

  1. 单文件
    :全站只出一个 .html,双击就能开。不许让我装 Node、不许起服务器、不许我改配置文件。
  2. 断网可用
    :教室的网络情况各位都清楚。贴图、字体、脚本,全部写进那个文件里,不许留任何外链。
  3. 不让我下东西
    :不许让我去官网下载 three.js 再手动放进某个文件夹。要什么你自己弄进来。
  4. 说人话
    :每改一版,告诉我改了什么、在哪个按钮上能看见。别跟我解释代码。

第三条特别重要。我试过那种“你先去 npm 安装一下”的路子,光看懂“npm 是什么”就花了我一个晚自习。


四、第一段提示词:让它先复述,再动手

打开 WorkBuddy,新建一个会话,把下面这段整段贴进对话框,回车。

我要做一个「太阳系 3D 模拟演示交互系统」,用途是高中地理课堂投影演示。请先不要写代码,先做两件事:第一,把我的需求复述一遍,重点复述下面这些约束。如果我有漏掉、说得含糊、或者自相矛盾的地方,直接指出来,别客气。第二,给我一个分步骤的实施计划。每步只做一件事,做完停下来等我说「继续」。硬约束(这几条不能破):1. 最终交付必须是一个单独的 .html 文件,双击用 Chrome 或 Edge 打开就能跑。2. 断网也必须能跑。不许留任何 CDN、外链字体、外链图片。3. 不许让我安装任何软件或手动下载库文件,你负责把 three.js 和所有贴图内联进去。4. 我完全不懂前端。不要跟我解释代码,只告诉我:点哪里、能看见什么。功能要求,按优先级排:P0 必须:太阳 + 八颗行星 + 月球,能自转、能公转;鼠标拖拽转视角,滚轮缩放。P0 必须:单击任意天体,镜头飞过去,同时弹出介绍框。P1 重要:公转速度可调、可暂停;有轨道线;底栏有「受光面 / 晨昏线 / 极区 / 夜侧 / 细节」五个固定机位按钮。P1 重要:一个「课程」面板,按人教版(2019)高中地理章节列知识点,每条挂一个按钮,点了就把镜头摆到能看见它的位置。P2 加分:卫星层(木卫、土卫等);「教室视角」按我给的经纬度算太阳高度角;相位角面板。

你会看到什么:它不会立刻写代码。它会先把你的需求复述一遍,然后指出“教室视角需要你提供经纬度”“P2 里的相位面板要说明用真实轨道还是画面比例算”——这些正是我原来没想清楚的。接着给你一个分步计划,通常七到九步。

这时候你只回两个字:继续。

为什么第一句要先让它复述

这是我这几个月最值钱的一条经验,跟工具没关系,跟怎么跟 AI 打交道有关系:

先让它复述需求,再让它动手。

因为 AI 有一个毛病:它太想让你满意了。你说“做个太阳系”,它会立刻给你一个能跑的东西,然后你发现方向全错,前面几百行白做。让它先用中文把你的意思讲一遍,你有机会在它还什么都没建的时候喊停。

后来我又给自己加了两条,你可以直接用:

第三,每做完一步,你先自己验收一遍:把你认为这一版可能出问题的地方列出来,并说明你是怎么检查的。第四,每步开始前先说你要改什么,等我回「可以」再动手,让我有喊停的机会。

这两条一加,返工量掉了大半。


五、七步做出来

第 1 步 先要一个“能转的球”,别急着要好看

你说:继续。

你会看到:浏览器里出现一个灰色的球,慢慢转。旁边有太阳,几颗灰球绕着它跑。丑得很有诚意。

这一版的价值不在好看,在于确认它真的能在你这台电脑的浏览器里跑起来。教室那台机器是几年前配的,我不先在自己机器上跑通,课上就敢开?不敢。

有老师在这一步就急着说“加上土星环、加上木星大红斑”。忍住。先跑通,再加料。跑不通的时候你分不清是功能太多还是环境不对,排查起来又多花一倍时间。

第 2 步 加贴图,我在这里栽了第一个跟头

你说:

现在加贴图。用 Solar System Scope 的公开贴图(CC BY 4.0,记得在页面角落标注出处)。地球、火星先用 8K,其他行星从 2K 起步。有一条必须做到:每张图下载完要检查完整性。如果图片里有整片纯灰(128,128,128)的区域,说明下载被掐断了,必须换一个源重下。不要拿这种图凑数。

你会看到:地球有了海陆轮廓,中国在东亚那个位置;火星有了水手谷那道大疤。

我也看到了:第二天早上打开,木星下半球是纯灰的。水星更绝,八成以上的像素是灰。

文件大小对、能打开、能显示、控制台一个报错都没有。但半个球是灰的。

原因我后来才弄明白:那批 8K 大图是夜里挂着下载的,连接被掐断后,图像库拿 128 灰把缺的部分补齐了。它觉得“我给了你一张完整的图”,它没错;我眼里只有半个木星。

我跟它说的是这句:

图片坏了不会报错,你要自己查。逐行统计接近 128 灰的像素占比,超过 4% 的那一行判定为坏图,整张作废,换另一个源重新下载。

它照做了,还自己找了备用图源。三个坏文件全换掉了。

这一条请你抄在本子上:AI 不会主动告诉你有问题,因为程序“认为”自己没错。灰图能解码、糊图能显示、贴图抢来抢去只是闪一下——全都不报错。你必须用眼睛当测试员。

第 3 步 把“好看”改成“能讲”

灰球变成彩球之后,我兴冲冲拿去给自己试讲了一遍,发现一个问题:漂亮,但没法讲。

你说:

现在这套东西好看,但还不能上课。请按我的讲课顺序重排界面:1. 底栏左边加五个固定机位按钮:「受光面」「晨昏线」「极区」「夜侧」「细节」。   其中「晨昏线」这个按钮,镜头要正对昼夜分界线,让分界线竖着出现在画面正中央。2. 左侧加一个「目录」,按恒星—行星—卫星分组,点谁飞谁。3. 顶栏加两个按钮:「上一视角」(回到上一步)和「最佳视角」(按当前太阳光照重新回正)。   上课时我把画面拖乱了,底下几十个学生等着,我需要一键救回来。4. 介绍框要能拖动、能改大小、能整个关掉。有些天体我不想让学生先读字,我要他们先看形状。

你会看到:底栏多出一排机位按钮。按「晨昏线」,地球的昼夜分界线正好竖在屏幕中间,左边亮,右边黑。

这个画面,我在黑板上画了十分钟,擦了又画,从来没画准过。

第 4 步 三个真正决定“能不能上课”的功能

到这一步,系统已经能看了。但“能看”和“能上课”之间还差三件事,这三件事只有站在讲台上的人才想得到。

(1)教室视角:把公式变成眼睛能看见的东西

加一个「教室视角」。按东经 119.5°、北纬 26.7° 计算:1. 实时算出当地太阳时、太阳高度角、太阳方位角,随系统时间变化。2. 画面切到"站在操场上抬头看天"的视角,能看见太阳此刻在天空中的位置。3. 加一个「把自转对准上午 10 点」的按钮,一点就把地球自转调到我上课那个时刻。

为什么非得要这个:太阳高度角公式我讲了三届,学生能背不会用。让他们看见“上午十点,太阳在东南方,高度角三十几度”,公式就从纸上站起来了。

讲完还能追问一句:“那冬至日上午十点呢?”现场改日期,画面跟着变。这一问,比十道计算题管用。

(2)相位面板:金星为什么既是启明星又是长庚星

再加一个「相位」面板,实时显示每颗行星的三个数:相位角 α(日—行星—地球的夹角)、光照面比例 (1+cos α)/2、距角 ε。注意:这三个数必须按真实轨道半径和实时公转相位算,不许用画面上的压缩比例算。画面上再补一条压缩尺度的连线示意,让学生看得见这三个角在哪儿,但数值要用真的。

学生总觉得金星“早上叫启明星、晚上叫长庚星”很玄。相位角一摆出来,一目了然。

我在这一条里特意加了“数值用真的、连线是示意”——不加这句话,它很可能拿画面上被压扁的轨道去算,算出来的数看着挺像那么回事,其实全是错的。给 AI 提要求,最容易漏的就是“用哪份数据算”。

(3)课程助手:把知识点直接挂在操作上

加一个「课程」面板,三个标签页:1. 知识点:按人教版(2019)必修一、选择性必修一 的章节顺序列,共 8 条。   每条写 3~5 个要点,配一个「易错点」,右边挂一个按钮,点了就把镜头摆到能看见它的位置。2. 随堂练习:12 道选择题,先让学生答,再点开看解析。3. 探月·探火:两张任务表,按时间排,逐条标「已实现 / 计划中 / 推迟 / 调整」。内容你写,但事实必须准:年份、重量、次数、国家,一个都不许编。写完之后你自己复核一遍,把拿不准的条目单独列出来问我,不要蒙。

你会看到:按 K 键弹出面板。翻到「探月·探火」,嫦娥六号那行写着“2024-06,人类首次月背采样返回,1935.3 克”;嫦娥七号标着“推迟”,后面写清是因为 2026 年发射窗口不满足条件。

那张表我一条一条核过。这是给学生看的东西,年份错一个,比不讲还糟。

第 5 步 标注与截图:把板书数字化

你说:

加一个标注层。按 P 打开工具条:画笔(5 种颜色、3 种粗细)、橡皮、撤销、清空、截图。截图要把画面和标注一起存成 PNG,右下角自动带上校名和日期。一个技术上的要求:画笔必须画在一个独立的画布层上,不能画进 3D 场景里。否则我一转视角,标注就跟着跑了。

最后那句话是我自己先想到的——因为我在别的软件上吃过这个亏。你越是能描述出“为什么不行”,它越不会走错路。

你会看到:可以在土星环上圈一圈,旁边写“环主要由水冰颗粒组成,横跨 28 万公里,平均厚度只有约 10 米”,然后按 S 存成图,直接拖进课件。

那行字我每年都写,今年第一次写在了画面上。

第 6 步 往近了看要清楚:分档贴图

2K 贴图在远处够用,一贴近就糊。这一步是把“能看”变成“值得看”。

你说:

现在所有贴图都是 2K,贴近看还是糊的。请改成两档:常态用低清,镜头拉近到一定程度自动换高清。1. 高清档规格:地球、火星、木星、月球用 8192×4096;其余行星和木星的四颗大卫星用 4096×2048;   土星的小卫星和天卫用 2048×1024。2. 切换绝对不能闪白。镜头飞过去之前,先把高清图解码好。3. 显存要有上限,看过的天体太多时要按"最久没用"的顺序释放,不能越看越卡。4. 显卡撑不住 8K 就自动退一档,不许黑屏,不许白屏。

你会看到:双击木星飞过去,大红斑从一团模糊的褐色斑块变成能看清的漩涡纹理;退回来,又变回低清省资源。

那一下由糊到清,教室里会有一声“哇”。这声“哇”值这几个月。

第 7 步 打包,然后拔掉网线

你说:

把整个项目打包成一个 .html:three.js、全部贴图(转成 base64)、地名数据,全部内联进去。打包完自己检查三件事:1. 文件里不能再有任何外链(src=、href= 指向外部的一律不许有)。2. 把项目里用不上的旧贴图清掉,别让文件白胖一圈。3. 断网实测一遍,把控制台的报错原样打给我看。

你会看到:太阳系.html,60.57 MB。双击,等个两三秒到五秒——它得先解开这 60 MB。

然后拔掉网线,按 F5 刷新。还是那八颗行星,还是那个大红斑。

这一步是整件事的分水岭。在此之前它是一个网页,在此之后它是一件教具。 教具的标准是可以带进任何一间教室,包括没有网的那一间。


六、我踩过的五个坑

这五个坑我想单独列出来,因为它们有个共同点:全都不报错。

我看到的
真正的原因
我后来怎么说
结果
木星下半球是纯灰的
8K 图下载被掐断,图像库用 128 灰补齐了
“逐行统计 128 灰占比,超过 4% 判坏图,换源重下”
加了灰块检测,自动换源,三个坏文件全换
点开行星还是糊的
切高清的阈值定在 3.4 倍半径,可我默认的观察距离就是 4.4~4.6 倍
“你的阈值我用不上。默认镜头就在 4.6 倍,切图阈值必须比它大”
改成 4.8 倍,点开即高清
月球一会儿清一会儿糊,还闪
旧的月球专用切换逻辑没删,和新的分档逻辑同时在改贴图,两边抢
“月球现在有两套逻辑在打架,把旧的删掉,统一走一套”
统一,不闪了
土星南半球发白
不是我压坏了,源图本身就那样
“去查一下,是不是原图如此”
确认是原图,没动
8K 月球文件坏了三次
断点续传把两个残片拼成一个能读但解不开的图
“不要用续传。整段下载,校验长度,失败重试四次”
改整段请求 + 长度校验,再没坏过

看完这张表你可能已经发现规律了:

凡是“看起来还行、但就是不对劲”的,它都不会主动说。

你必须自己盯着屏幕看,然后把“哪里不对、应该是什么样”用大白话讲给它。

我的原话经常是这种:“木星下面是灰的。”“点进去还是糊的。”“这个角我算过,不对。”

它听得懂。它甚至经常一听到就知道原因在哪,只是它自己没想过要去看。


七、验收清单

东西做完了,别急着进教室。我照着这张单子一项一项试过,才敢在四十个人面前双击那个文件。

  • ☐ 双击能打开,拔掉网线再刷新,照样能跑
  • ☐ 控制台(F12)零报错
  • ☐ 八颗行星 + 16 颗卫星,逐个点开,介绍框都有内容、不空白
  • ☐ 双击地球飞过去,地名(国名、山脉、航道)能看清
  • ☐ 「晨昏线」机位按下去,分界线正对画面中央
  • ☐ 「教室视角」的太阳高度角,跟手机天气软件对得上(差 1° 以内可以接受)
  • ☐ 相位面板的数,用手算一遍,对得上
  • ☐ 任务表 38 条,年份、重量、国家逐条核过
  • ☐ 介绍框拖到边上、字号调到 160%,不重叠、不遮按钮
  • ☐ 手机或平板上打开,单列显示不挤(有老师用平板投屏)
  • ☐ 按 S 截图,右下角有校名和日期
  • ☐ 让它自己转 20 分钟,不卡、不崩、内存不涨

最后一条别省。课上崩一次,这个班这学期就不会再信你的电子教具了。


八、课堂上怎么用

我试下来最顺的三个 15 分钟:

场景 A|必修一 1.1 第一课时(天体系统、八大行星)

  • 0~3 分钟:开全景,一个字不说,让画面自己转。底下自然安静。
  • 3~8 分钟:从目录点水星,一颗一颗点过去,每颗停 30 秒,只问一句“这颗和上一颗,哪儿不一样”。
  • 8~13 分钟:按「自动巡览」,让它按顺序过一遍。这时候再讲“同向、共面、近圆”,学生眼睛跟着轨道走。
  • 13~15 分钟:关掉介绍框(按 I),开随堂练习,当场答两题。

场景 B|选必一 1.2(晨昏线与昼夜长短)

  • 按「晨昏线」机位 → 一半亮一半暗,先把分界线认下来
  • 时间轴调到 40 天/秒 → 让学生看分界线怎么一点点倾斜
  • 按「极区」机位 → 极昼极夜,一句话不用多讲
  • 按 S 截图,进课件。这张图比我画的准。

场景 C|月球那一节

  • 点月球 → 「近观月面」→ 环形山、月海
  • 把镜头绕到月球背面 → 讲嫦娥四号:人类第一次在月背着陆,就在冯·卡门撞击坑
  • 打开「探月·探火」,按时间往下念。念到“嫦娥六号,2024 年 6 月,月背采样返回 1935.3 克”的时候停一下,说:这两件事,人类此前都没做过。

这个停顿很有用。有学生就是从这一下开始,想去干这行的。


九、写给同行

三句话,都是我自己撞出来的。

第一,你不需要会写代码,你需要会验收。

这套东西我一行代码没写。但我每天开着它看,看见不对就说“这里不对,应该是这样”。几个月下来,我提了一百多条“不对”。

AI 缺的不是技术,是知道什么叫对。这件事只有站在讲台上的人能做。

第二,先把教学顺序写下来,再动手。

我第一段提示词写了八百多字,其中六百字在讲“第几章第几节要让学生看见什么”。技术部分只有三行。

那份需求,才是这个系统真正的图纸。

第三,别指望一次成型。

这个东西我前后改了三十几轮。第一版是个灰球,最后一版有 8K 地貌、38 行探测任务表和一整套课程知识点。中间那些版本,一个都没白费——每一版都是我在自己试讲时发现“这里还差一点”,然后再改一次。

教具和教案一样,是磨出来的,不是做出来的。


本系统贴图来自 Solar System Scope(CC BY 4.0);中国地理图层采用标准地图省级边界,含南海诸岛;课程知识点对应人教版(2019)高中地理必修第一册与选择性必修一。探测任务表中的计划类条目随时间可能调整,以各国航天机构正式发布为准。

GT创客空间 · 老墨

相关学习资料