demo_canvas API
Luna-Flow/geometry3d/demo_canvas 是面向 js 目标的浏览器可执行程序。它不导出任何 MoonBit 项;它的接口是它所需要的 HTML 页面,以及它用 Canvas 后端绘制的场景。
构建与服务
just canvas-build # moon build src/demo_canvas --target js, then copy files
just canvas-serve # build, then serve target/canvas-demo on http://localhost:8080
canvas-build 把 src/demo_canvas/index.html 和编译得到的 demo_canvas.js(重命名为 demo.js)复制到 target/canvas-demo/。
页面约定
geometry3d-canvas
页面必须包含一个 <canvas id="geometry3d-canvas">。程序把它的 width 和 height 属性设为 640 × 480,并在其 2D 上下文中绘制。如果缺少该元素或上下文,程序会在启动时中止。
demo-select
页面必须包含一个 <select id="demo-select">。其值为 dolly 时选择滑动变焦场景;其他任何值选择圆环。程序在启动时以及每次 change 事件时读取该值。
场景
圆环
圆环场景显示一个半径为 1.7 和 0.58(32 × 18 分段)的圆环,按动画时间戳每毫秒 rad 的速度、以 的比例绕 、、 旋转。相机距离 6.2 个单位,在全画幅传感器上使用 35 mm 镜头。
滑动变焦
滑动变焦场景就是终端演示 --dolly 模式的场景,帧号由动画时间戳按每秒 30 帧换算得到。