手和艺·摇奖机模拟器

技术实现说明 · 使用文档 · 免责声明

⚠ 重要免责声明 — 请务必阅读

一、项目简介

本项目是一个基于浏览器的物理摇奖机模拟器,包含三个独立页面:

页面说明
🔴 乐透型摇奖模拟2 台大型摇奖机(前区红球 + 后区蓝球),2D 物理引擎,支持自定义选号注入
🔵 排列型摇奖模拟5 台小型摇奖机并排,每台 0-9 共 10 个球,2D 物理引擎,支持单独控制
🟢 真3D物理摇奖真正的 3D 球形空间,球在 X/Y/Z 三轴自由运动碰撞,可 360° 旋转视角,Three.js 3D 渲染 + Cannon-es 3D 物理引擎

二、技术实现

技术栈

HTML5 Canvas Three.js 0.160 Cannon-es 0.20 Matter.js 0.19 CSS3 JavaScript ES6+

2D 版本(乐透型 / 排列型)

使用 Matter.js 2D 物理引擎,用多段旋转矩形拼出椭圆弧面容器,球在平面内运动碰撞。风力系统模拟底部风栅脉冲气流。

真 3D 版本

使用 Three.js 做 3D 渲染(球体、玻璃罩、灯光、阴影),Cannon-es 做 3D 物理计算(重力、球与球碰撞、速度积分)。球在真正的 3D 球形空间内 X/Y/Z 三轴自由运动,用户可 360° 旋转视角观察。

真物理随机开奖(核心)

开奖号码完全由物理运动决定,代码中没有任何预选号码的逻辑。

1. 用户点击"开奖" → 标记开奖状态(不选任何球) 2. 出口下方出现上升气流通道 3. 所有球受自然风力作用翻滚 4. 哪个球被吹进出口并飞出 → 就是开出的号码 5. 物理检测球位置,记录该球号码

随机性来源:球初始随机位置、号码随机洗牌、风力随机相位、用户控制的混球时长。多熵源叠加使结果不可预测、不可复现

反偏差设计

三、使用说明

🔴 乐透型摇奖模拟

  1. 选号注入 — 前区(01-80)和后区(01-16)中点选号码,支持文本输入,点"注入选号"
  2. 调节风力 — 拖动滑块选 3-12 级,点"前区风力"/"后区风力"分别启动,可独立控制
  3. 开奖 — 设定开出球数,点"前区开奖"/"后区开奖",球被风力吹出出口即为结果
  4. 复制结果 — 点击"复制结果"按钮一键复制开奖号码

🔵 排列型摇奖模拟

  1. 选择球色 — 白 / 红 / 蓝 / 金 四色可选
  2. 启动风力 — "全部启动"或每台单独点"风"按钮
  3. 开奖 — "全部开奖"或每台单独点"开"按钮,每台物理飞出 1 个球
  4. 结果 — 5 位数字组合为开奖号码,可一键复制

🟢 真3D物理摇奖

  1. 选号注入 — 与乐透型相同,前区(01-80)和后区(01-16)选号注入
  2. 旋转视角 — 鼠标拖拽旋转 3D 视角,滚轮缩放,可从任意角度观察
  3. 调节风力 — 拖动滑块选 3-12 级,分别启动前区/后区风力
  4. 开奖 — 球在 3D 球形空间内被风力吹起,从顶部开口飞出
  5. 复制结果 — 点击"复制结果"按钮一键复制开奖号码

四、技术要求与已知限制

项目要求
浏览器Chrome / Edge / Firefox 最新版(需支持 WebGL 和 ES6)
2D 引擎Matter.js 0.19(CDN 自动加载)
3D 引擎Three.js 0.160 + Cannon-es 0.20(CDN 自动加载)
屏幕宽度建议 1280px 以上
性能2D 版 80 球约 60fps,3D 版 80 球约 40-60fps

已知限制

本项目是技术演示工具,不是彩票工具。

所有开奖结果是浏览器本地物理引擎的随机产物,与任何现实彩票开奖结果无关。
不构成任何形式的选号建议或投注参考。
请理性对待彩票,量力而行,切勿沉迷。
请以官方彩票开奖结果为准。

作者不对任何人因使用本软件而产生的任何损失承担责任。