乐于分享
好东西不私藏

继续:与AI协作制作立体几何展示工具

继续:与AI协作制作立体几何展示工具

让抽象的空间,变得可触可及

演示地址:https://www.xsgzs.cn/demo/stereo-geometry.html

立体几何,大概是很多学生数学学习路上的“拦路虎”。根据《普通高中数学课程标准》要求,立体几何的核心教学目标之一,就是培养学生的直观想象素养,其中最关键的就是空间想象能力,帮助学生依托图形建立空间观念,感悟几何直观的价值,这也是新课标几何与代数主线中重点强调的素养要求之一。

但是明明我们就生活在三维世界里,空间感本应是与生俱来的能力,可为什么一到纸上的平面透视图,学生们就满脸困惑?答案很简单:我们画在纸上的,永远是“假的”立体图

教立体几何多年,我总劝学生多动手画图,在笔尖的勾勒中找到平面与三维图形的对应关系——这是学好立体几何的关键。可现实是,会的学生早已开窍,不会的学生依然被困在“看不见”的困境里:黑板上的图形只有可见的几个面,被遮挡的棱、隐藏的高线,只能用虚线勉强示意,学生盯着黑板,眼神里满是迷茫:这到底是个什么样子?

科技在进步,教学不该停留在“黑板画图”的旧模式里。我迫切需要一个“会动”的立体图形,能在讲题时随时展示,让学生直观看到图形的每一个视角。在前篇终于实现GGB课件自由,用ai制作了GeoGebra课件生成工具,方便与ggb的使用了。有人会问:有GeoGebra这么强大的几何工具,为什么还要另起炉灶?

我的想法很简单:我要的是“教学展示工具”,不是“专业作图软件”。GeoGebra的强大毋庸置疑,但它的短板也很明显:触屏支持不佳,操作需要切换界面,需要提前准备,课堂上我需要在图形旁边随时标角度、画箭头、写推导步骤,而GeoGebra作为精准的几何作图环境,根本做不到这种“随手写写画画”的灵活性。

我的需求很明确,它不需要多复杂的数学运算,只需要贴合课堂教学场景:

  1. 能旋转拖拽,让学生直观看到图形的立体感,打破平面局限;

2.能快速拓展图形,两个顶点一点就能连线,不用输入复杂指令;

  1. 能自由添加线与面,先让学生思考,再揭晓答案,引导主动探究;

4.自带手绘白板,可随时在图形旁批注、推导,贴合课堂节奏;

  1. 触屏友好,手机、平板上也能流畅操作,课堂上可随时展示。

把需求告诉AI后,它很快给出了方案:“用Three.js配合OrbitControls,CDN引入不占服务器空间,左边放控制面板,右边放3D画布,完全能实现你的需求。”

“能做到吗?”我带着半信半疑的语气问。

“能。”AI的回答很干脆。

那时候我还不知道,“虚实线自动判断”这六个字,会成为接下来最折磨我的噩梦,却也最终成为这个工具最核心、最有价值的特性。

第一稿–当平面图形“活”了起来

当AI把第一稿发给我时,我点开页面的瞬间,就知道:这大概就是我想要的东西。

屏幕中央,一个正方体静静躺着。我用鼠标左键轻轻一拖,图形开始缓缓转动——绕到底面,能看到黑板上永远画不出来的视角;转到侧面,各条线的位置清晰可见,再也不用靠想象去推测。

那种感觉,就像玩了一辈子平面魔方,突然有人递给你一个真正的3D魔方,指尖转动间,所有隐藏的细节都一览无余。满心都是难以言喻的兴奋。

基础版的功能,比我预想的还要丰富:

  • 图形切换
    :三棱柱、四棱锥、正方体、三棱锥,一键切换,满足不同教学场景;
  • 辅助线开关
    :高线、对角线,想看哪个点哪个,不用手动绘制;
  • 顶点标注
    :A、B、C、D……字母始终朝向镜头,不会倒过来,方便课堂讲解;
  • 视角控制
    :左键旋转、右键平移、滚轮缩放,操作简单,学生也能轻松上手。

试用了一会儿,我去掉一些不要的东西,又提出了新的需求:图形要能拓展,能修改顶点、增加点、添加线和面。AI很快完成了优化,一切都朝着顺利的方向推进。

我想着:先把虚实线的问题解决好,再加上旋转体,这个工具就完美了。于是我问AI:“能加更多图形吗?比如旋转体圆柱、圆锥?”

直到这时,我才真正意识到,“虚实线”这三个字,会成为横在我们面前的一道坎。

噩梦开始–虚实线的“玄学”判断

AI优化后,工具多了很多实用功能:顶点可以拖动、三点可以成面,还能生成半透明的辅助面。但最让我惊喜,也最让我头疼的,还是虚实线功能。

我先试了正方体——旋转图形,背面的棱自动变成虚线,转到侧面,被遮挡的棱也会随之变虚,完美贴合现实视角。这个效果,正是我想要的。

可当我切换到三棱柱时,瞬间傻眼了:所有的棱都是虚线,不管我怎么旋转视角,没有一条能变成实线,就像被按下了“永久虚线”的开关。

再试圆柱,更离谱:上底面整圈都是虚线,下底面整圈都是实线,无论我怎么转动图形,它俩都固执地保持不变。圆锥就更不用说了,AI自己都承认“比较丑”,曲面上的点密密麻麻,看着就让人头疼。

我开始一条条给AI反馈问题,把所有异常情况都列了出来:

“正方体及棱柱类,一开始点击连线都是虚线,转一圈也没有变实的时候”“圆柱和圆台画出来上底面就是虚线,下底面为实线”“连线大部分是实的,偶尔为虚,逻辑混乱”“曲面类和平面类的虚实判断逻辑不统一”

还有一个更离谱的问题:在三棱柱上连线,不管怎么旋转视角,线永远是虚的,就像被永远判了“虚刑”,没有任何翻身的机会。

AI开始排查代码,一会儿说“法线方向不对”,一会儿说“点积计算有误”,一会儿又要重写判断逻辑。那些专业术语听得我云里雾里,但我能感觉到,这个问题不简单。

后来我才明白,虚实线看起来简单,背后却藏着复杂的逻辑:它涉及法线计算、视角方向、深度判断,一条棱该不该被遮挡,取决于视角方向和法线方向的夹角——夹角大于90度,面朝你,就是实线;小于90度,背对你,就是虚线。

可道理虽简单,实际操作却难如登天:多面体的每一条棱都连着两个面,两个面的法线方向不同,该以哪个为准?更别提旋转体的曲面了,曲面上每个点的法线方向都不一样,根本没法用一套统一的逻辑去处理。

更麻烦的是,多面体和多面体不一样,旋转体和旋转体也不一样,一套算法根本无法通用。AI尝试修复法线方向计算,把动态计算改成从中心向外直接计算,可改完之后,有些图形好了,有些图形又出现了新的bug。

修一个,坏两个——这就是那段时间的常态。看着屏幕上全是虚线的三棱柱、固执不变的圆柱底面,我心里满是沮丧,甚至开始怀疑:这个功能,是不是根本做不出来?

AI也没有放弃,每次修复失败后,都会说一句:“我再想想……”

破局–旋转体的“微积分式”解法

如果说虚实线是一道坎,那旋转体(圆柱、圆锥、圆台)就是最难的那一关。

多面体的虚实线好歹有规律可循,算一算法线方向,再判断朝向,总能找到解决办法。但旋转体有曲面,曲面是光滑的,法线方向每一点都不同,根本没法简单判断“朝前”还是“朝后”。

我给AI指出了更深层的问题:

“旋转体刚出来就不对——上底面始终为虚线,下底面为实线。正确应该是轴截面的后方为虚线,前方为实线,下底面应该一半实线一半虚线。”“圆心拖动应该整个底面跟着动,而不是只有圆心动。”“轴截面应该画出来,但旋转时轴截面也在变,算法更难。”

我甚至开始怀疑:是不是旋转体根本不适合用算法生成?是不是只能一个个手动画?如果真是这样,这个工具的意义就大打折扣了——我要的不是一个只能展示预设图形的工具,而是一个灵活的、可交互的教学展示平台。

AI尝试了很多方案,效果都不理想。旋转体的虚实线,就像一堵墙,死死挡在我们面前。

直到有一次,AI在思考过程中说了一句话:“如果用32边形模拟圆,近似圆,算法就应该和多面体虚实判断一样了。”

我瞬间眼前一亮,当即给它点了个赞——对啊!这个思路太妙了,有点像微积分:用足够小的直线段去逼近曲线。32边形看起来和圆几乎没有区别,但在算法上,它就是多边形,和多面体的判断逻辑完全一致。

可做完后新的问题又出现了:我在底面上设置的点,只能在很小的范围内活动,无法自由沿着“圆”滑动。因为底层逻辑是32边形。

看着AI改来改去,反而把之前实现的功能弄出了新问题,甚至又改回之前淘汰的方案,我突然想到一个关键:不能把绘制和判断虚实分开吗?“只要在底面边上的点,就存在一个没有画出来的圆,这个点要在这个圆上跑啊。”

这句话,点醒了AI。

它很快明白了我的意思:近似的32边形边不能显示出来,要保持“圆”的样子,所以32条边里多余的母线和辅助点要隐藏,圆周上的辅助点也不能显示,只保留4个关键方位点;用户拖动圆周上的点时,点应该“真的在圆上跑”,而不是在32边形的顶点上跳来跳去——这需要在真正的圆上计算最近点,再映射回去。

这需要很强的约束逻辑,但AI懂了。我担心它做不好,反复追问,它给我解释了核心思路:

  1. 显示层
    :只显示圆心(红色,带标签)和4个关键点(蓝色半透明),保持圆的视觉效果;
  2. 隐藏层
    :用32边形来计算虚实,沿用多面体的判断算法;
  3. 约束层
    :圆心拖动时整个底面跟着动,圆周点约束在“真正的圆”上滑动;
  4. 轮廓层
    :母线随圆心位置变化而变化,保证图形的完整性。

这个思路,比我想象的还要周全。

AI开始重构了旋转体的渲染逻辑,耗时很长,当我再打开页面时,圆柱的底面,终于不再全是虚线了。

它会随着视角变化,上半圆实、下半圆虚,或者反过来;转到侧面,下底面也是一半实一半虚,和现实中的视角完全一致。这,就是我想要的效果。

AI也松了口气,说:“旋转体和多面体统一算法了。”

那一刻我突然明白:这才是人和AI协作的正确姿势。不是AI给我一个完美答案让我照搬,也不是AI说什么我就信什么,而是我说出我的困惑、我的观察、我的直觉,AI在我的指引下找到方向。

人是指南针,AI是执行者。

(最后测试时还是有些小瑕疵,但已经足够好用了——毕竟内容越复杂,牵一发而动全身,些许不完美,反而更真实。)

至于球体,我最终放弃了——它的虚实判断逻辑更复杂,且课堂教学中用到的场景不多,与其花费大量时间完善,不如把现有功能做精,贴合实际教学需求。

写在最后–人与AI,互补共生

工具做完了,但我的思考没有停。

首先是迫切的需要复杂工程的规范工作流,AI的使用不能由他自由发挥,很不稳定,甚至快结束时,自作主张删去调试信息删多了直接页面崩溃,我让他改回去,说没有备份,改到一天前的备份,一天工作白做!AI是强大的工具,但永远需要人的指导

这个项目里,虚实线的算法改了无数遍,旋转体的逻辑重构了两次。每一次突破,都不是AI独立完成的,而是我和AI不断对话、不断试错的结果。

没有人的判断和指引,AI很可能会在错误的路上走很远;但同样,没有AI的高效执行,我想做这个工具的想法,永远只能停留在脑子里。

人与AI,各有所长:人有直觉、有经验、有明确的方向,AI有高效、有耐心、能落地复杂的执行。互补,才能走得更远

回到立体几何教学本身。

这个工具的价值,不在于它有多先进,不在于它用了多少复杂的技术,而在于它能让学生“看见”。

看见,才是理解的前提。

愿每一个学习立体几何的学生,都能打破抽象的壁垒,看见空间的美好,不再被“看不见”困住。

合集目录:
精选:
一个高中数学教师学用AI记
简单的无限可能:泰勒与傅里叶教会我们
要啥齐次化,请看齐次化的数学本质!
试题说道
欲穷千里目,更上几层楼?
图清理明–且看南京一模第11题破解之道
我见青山多妩媚,料青山见我亦清明——从概念与结构,2026年3月南通二模卷第7题
以退为进,数学思维的进阶之路-兼解2026年武汉3月二调第14题三角函数
三角变换再出发·一题一感悟
深圳一模 19 题——从比值代换到结构转化,解析几何要有 “变量的心”
惊艳 Deepseek答卷142分 苏北四市(徐州、淮安、宿迁、连云港)高三数学第一次调研(二)
惊艳 Deepseek答卷142分 苏北四市(徐州、淮安、宿迁、连云港)高三数学第一次调研(一)
简单的无限可能:泰勒与傅里叶教会我们
高中必修一直角走廊问题高一阶段研修手册
要啥齐次化,请看齐次化的数学本质!
数学思维可视化:从圆柱椭圆截面到三角函数曲线的维度对话–必修一课本直角烟囱实验
高一百校联考压轴好题,见微知著,解锁参数方程的思维密码
要啥和差化积,本质比技巧重要——2025年高考数学第19题深度研究
“二次元”函数家族:二次分式的变形魔法
一题乾坤大,一法天地宽
函数如逆旅,x是行人–含参不等式及二次函数的讨论
从 “对酒当歌” 到 “数点寒鸦”:对数运算的性质及应用
“基本不等式应用“解题破局暨漫谈高中解题思维——从“公式记忆”到“思维建模”,解锁代数最值的哲思
道生一,一生课:用 AI 把 1 道题变成高三 “一题一课” 微专题
以追求为帆,以投入为桨 ——  2025年新高考一卷评析
AI学用
终于实现GGB课件自由
向量控制大师:当概念不再是 “要背的字”,而是 “亲手做的体验”
一个高中数学教师学用AI记
数学与生活