1.0.1 • Published 10 years ago
fov-2d v1.0.1
fov-2d
Test whether a point is in an observer's field-of-view.

Given the location, heading, and field-of-view (as an angle) of an observer's eye, determine whether the target is visible (the blue triangle).
Installation
npm install fov-2dExample
var inFov = require('fov-2d')
var enemy = [0, 0]
var enemyFacing = [1, 0]
var enemyFov = Math.PI / 3 // 60 degrees
var player = [100, 0]
var crate = [0, 10]
var testPlayer = inFov(enemy, enemyFacing, enemyFov, player)
var testCrate = inFov(enemy, enemyFacing, enemyFov, crate)
console.log(testPlayer)
console.log(testCrate)outputs
true
falseUsage
var fov = require('fov-2d')var visible = fov(eyePos, eyeFacing, eyeFov, targetPos)
eyePos- origin of the eye[x, y]eyeFacing- the direction the eye is facing, given by a 2d vectoreyeFov- the angle, in radians, of the eye's field-of-viewtargetPos- origin of the target the eye is trying to test the visibility of
Returns true if the target is within the eye's FOV, and false otherwise.
More
This module can be readily combined with modules like raycast-2d-tilemap to check for solid tiles in a tilemap to determine visibility.