Skip to content

Instantly share code, notes, and snippets.

@alandipert
Created February 18, 2010 06:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alandipert/307420 to your computer and use it in GitHub Desktop.
Save alandipert/307420 to your computer and use it in GitHub Desktop.
/*
/-------------\
/ \
/ \
/ \
| XXXX XXXX |
| XXXX XXXX |
| XXX XXX |
\ X /
--\ XXX /--
| | XXX | |
| | | |
| I I I I I I I |
| I I I I I I |
\ /
-- --
\-------/
XXX XXX
XXXXX XXXXX
XXXXXXXXX XXXXXXXXXX
XXXXX XXXXX
XXXXXXX
XXXXX XXXXX
XXXXXXXXX XXXXXXXXXX
XXXXX XXXXX
XXX XXX
************************************************************
* BEWARE!! IF YOU THINK YOU UNDERSTAND THIS, YOU DO NOT. *
************************************************************
*/
exports.isTween = function(l, p) {
return (l[0][0] == l[1][0]
? (Math.min(l[0][1], l[1][1]) <= p[1]
&& p[1] <= Math.max(l[0][1], l[1][1])
? (l[0][1] == l[1][1] ? 0 : (p[1] - l[0][1]) / (l[1][1] - l[0][1]))
: null)
: (l[0][1] == l[1][1]
? (Math.min(l[0][0], l[1][0]) <= p[0]
&& p[0] <= Math.max(l[0][0], l[1][0])
? (p[0] - l[0][0]) / (l[1][0] - l[0][0])
: null)
: ((p[1] - l[0][1]) / (l[1][1] - l[0][1])
== (p[0] - l[0][0]) / (l[1][0] - l[0][0])
? (p[0] - l[0][0]) / (l[1][0] - l[0][0])
: null)));
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment