Reference · Surface maze rules and geometry
projectFramefunction
Put the solid, turned by q and zoomed, on a picture width by height: fills every array of the frame.
Import it
import { projectFrame } from "@johnmorrisdotca/meikyuu/3d";
Definition
function projectFrame(frame: SolidFrame, grid: SolidGrid, q: Quat, zoom: number, width: number, height: number): SolidFrame
Parameters
| Name | Type | Description |
|---|---|---|
frame | SolidFrame | The current projected surface-view arrays and dimensions. |
grid | SolidGrid | The valid native flat or surface cell graph. |
q | Quat | The current normalized rotation quaternion. |
zoom | number | The positive surface-view zoom multiplier. |
width | number | The native width in cells or pixels specified by this signature. |
height | number | The native height in cells or pixels specified by this signature. |
Returns
SolidFrame
Put the solid, turned by q and zoomed, on a picture width by height: fills every array of the frame.
Examples
import type { MazeRecipe } from "@johnmorrisdotca/meikyuu";
import { buildMaze } from "@johnmorrisdotca/meikyuu";
import type { Quat, SolidRecipe } from "@johnmorrisdotca/meikyuu/3d";
import { buildSolidMaze, createFrame, projectFrame } from "@johnmorrisdotca/meikyuu/3d";
const recipe: MazeRecipe = {shape:"square",w:5,h:5,algorithm:"backtracker",mode:"to-goal",seed:42};
const maze = buildMaze(recipe);
const grid = maze.grid;
const solidRecipe: SolidRecipe = {kind:"cube",n:2,algorithm:"backtracker",seed:42};
const solid = buildSolidMaze(solidRecipe);
const solidGrid = solid.grid;
const q: Quat = [0,0,0,1];
const frame = projectFrame(createFrame(solidGrid),solidGrid,q,1,640,480);
console.log(projectFrame(frame,solidGrid,q,1,640,480).cellPixels);225.60000000000002What it prints (run when this page was built)