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 · Playable boards

zoomedAboutfunction

The view zoomed by factor about the pixel (px, py) of the box, which stays over the same spot of the board.

Import it

import { zoomedAbout } from "@johnmorrisdotca/meikyuu/play";

Definition

function zoomedAbout(view: View, factor: number, px: number, py: number, box: ViewBox, pad?: number): View

Parameters

NameTypeDescription
viewView

The current pan and scale.

factornumber

The positive zoom multiplier.

pxnumber

The horizontal pointer position in viewport pixels.

pynumber

The vertical pointer position in viewport pixels.

boxViewBox

The viewport dimensions and logical board bounds, or board bounds specified by the signature.

pad (optional)number

The native SVG or viewport padding in drawing units/pixels specified by the signature.

Returns

View

The view zoomed by factor about the pixel (px, py) of the box, which stays over the same spot of the board.

Examples

import type { MazeRecipe } from "@johnmorrisdotca/meikyuu";
import { buildMaze } from "@johnmorrisdotca/meikyuu";
import { fitView, zoomedAbout } from "@johnmorrisdotca/meikyuu/play";

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 box = {width:390,height:844,area:grid.box};
const view = fitView(box);
console.log(zoomedAbout(view,1.5,100,100,box));
{
  scale: 94.35483870967741,
  x: -0.07008547008547006,
  y: -3.6788034188034198
}

What it prints (run when this page was built)

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