







- case 1 50米洗车难题


- case 2 个人云笔记服务



- case 3 本地文件管理





核心功能(必需)
1. 海洋表面— GERSTNER 波浪
– 叠加至少 5 个 GERSTNER 波浪成分(不同的振幅、波长、方向、速度)
– 在 128×128 的网格网格上进行实时顶点位移- 每帧重新计算法线以正确照明
– 泡沫/白帽:当陡峭度超过阈值时,在波浪峰顶上出现白色斑块
– 地平线雾效果将远处的海水与天空颜色混合2. 水下模式
– 按”U”键切换水上/水下相机- 水下效果:蓝绿色深度染色,来自水面的体积光束,深度雾(能见度随深度减少)
– 在海底上动画化的焦光图案
– 使用 Perlin 噪声的程序化海底地形(沙质纹理着色)
3. 鱼群(BOID 算法)
– 雷诺鱼群:分离、对齐、内聚
– 2 种不同颜色、大小和群组紧密度的鱼类
– 每个群组 30-50 条鱼
– 避障(海底、水面)
– 鱼身体沿速度矢量方向朝向
4. 珊瑚礁
– 3 种程序生成的珊瑚类型(分支状、圆顶状、扇状),具有不同的颜色
– 成簇放置在海底
– 基于简单水流矢量产生轻微摇摆动画
5. 天气系统
– 3 个预设:平静/中等/风暴 — 可用 1、2、3 键切换
– 平滑过渡(5 秒)影响:波浪振幅、天空黑暗度、泡沫密度、水下能见度
– 风暴增加:雨丝(水面以上下落线粒子)、偶尔闪电闪烁(屏幕闪烁+短暂明亮定向光)
6. 海面船只
– 一艘帆船在海洋中渲染
– 船只跟随其位置的波浪高度(采样 Gerstner 波浪)
– 倾斜和滚动基于当地波浪坡度
– 船后形成 V 形泡沫尾迹
– 点击海面重新定位船只
在可实现情况下加入奖励功能
B1. 鲨鱼捕食者
– 鲨鱼巡逻礁区,接近时追逐最近的鱼群
– 鱼群在鲨鱼进入恐惧范围时四散(破坏鱼群队形)
– 正弦波形身体游动动画
B2. 昼夜循环
– 时间滑块(0-24 小时)控制太阳位置
– 天空颜色变化(蓝色→日落橙色→夜晚深蓝色)
– 水下:夜晚珊瑚发出生物发光
– 夜晚月光:微弱冷色调照明
B3. 分屏模式
– 按”V”键开启水平分屏:上半部分在水面上方,下半部分在同一位置水下
– 双视图同时渲染
– WASD:移动,QE:上升/下降,鼠标拖拽:朝向视角
– 滚轮:移动速度
– U:切换水下模式,R:重置摄像头
– 1/2/3:天气预设- 空格键:暂停/继续模拟
– S:截图(保存 PNG)
– 底部栏:FPS、摄像头深度、当前天气状态、鱼群数量、风向箭头
– 右上角:天气指示图标(太阳/云/风暴)
– 窗口:1280×720,目标帧率 30+- 单个 Python 文件,仅使用 pygame + PyOpenGL + numpy + 标准库- 面向对象结构:OceanSurface、BoidSystem、CoralGenerator、WeatherSystem、Ship、Camera、Scene
– 每个类都有文档字符串
– 以平静天气、一个鱼群、一艘帆船、水下珊瑚礁可见状态启动。编写完整的可运行代码。








© 版权声明
文章版权归作者所有,未经允许请勿转载。
