本文へ移動

Meikyuu迷宮

シード付きの迷路と矢印パズルを作り、番号付きの問題を進め、平面や立体表面で遊べます。

「迷宮」は迷路のように入り組んだ場所を表す言葉です。 名前について(英語)

目次

リファレンス · 立体表面の規則と形

faceCellTurn関数

リファレンスの説明と例は英語です。見出しと目次は日本語です。

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 { faceCellTurn } from "@johnmorrisdotca/meikyuu/3d";

定義

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

引数

名前型説明
gridSolidGrid

The valid native flat or surface cell graph.

qQuat

The current normalized rotation quaternion.

cellnumber

A zero-based native cell index.

around (省略可)boolean

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

戻り値

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

例

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 ]

出力(このページを作ったときに実行した結果)

ソースを見るGitHub で編集@johnmorrisdotca/meikyuu 3.2.0 のソースから作成しました。

この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。