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

faceCellTurnfunction

The turn that brings the cell round to face the viewer (see facingOf for around), by the shortest way, and then rolls it so that a side of the cell lies level (the cell's own first side, to the nearest of the turns that put one of its sides level).

Import it

import { faceCellTurn } from "@johnmorrisdotca/meikyuu/3d";

Definition

function faceCellTurn(grid: SolidGrid, q: Quat, cell: number, around?: boolean): Quat

Parameters

NameTypeDescription
gridSolidGrid

The valid native flat or surface cell graph.

qQuat

The current normalized rotation quaternion.

cellnumber

A zero-based native cell index.

around (optional)boolean

Whether to turn about the cell’s own surface normal.

Returns

Quat

The turn that brings the cell round to face the viewer (see facingOf for around), by the shortest way, and then rolls it so that a side of the cell lies level (the cell's own first side, to the nearest of the turns that put one of its sides level).

Examples

import type { MazeRecipe } from "@johnmorrisdotca/meikyuu";
import { buildMaze } from "@johnmorrisdotca/meikyuu";
import type { Quat, SolidRecipe } from "@johnmorrisdotca/meikyuu/3d";
import { buildSolidMaze, faceCellTurn } 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];
console.log(faceCellTurn(solidGrid,q,solid.start));
[ 0, 0.7071067811865475, 0, 0.7071067811865475 ]

What it prints (run when this page was built)

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