Skip to the content

Meikyuu迷宮

Generate seeded mazes and arrow puzzles, follow numbered levels, and play on flat grids or three-dimensional surfaces.

Meikyuu is the Japanese word 迷宮 for labyrinth. About the name

Contents

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

NameTypeDescription
frameSolidFrame

The current projected surface-view arrays and dimensions.

gridSolidGrid

The valid native flat or surface cell graph.

qQuat

The current normalized rotation quaternion.

zoomnumber

The positive surface-view zoom multiplier.

widthnumber

The native width in cells or pixels specified by this signature.

heightnumber

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.60000000000002

What it prints (run when this page was built)

View sourceEdit on GitHubMade from the source of @johnmorrisdotca/meikyuu 3.2.0.