tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
27
Task/Ray-casting-algorithm/PicoLisp/ray-casting-algorithm.l
Normal file
27
Task/Ray-casting-algorithm/PicoLisp/ray-casting-algorithm.l
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
(scl 4)
|
||||
|
||||
(de intersects (Px Py Ax Ay Bx By)
|
||||
(when (> Ay By)
|
||||
(xchg 'Ax 'Bx)
|
||||
(xchg 'Ay 'By) )
|
||||
(when (or (= Py Ay) (= Py By))
|
||||
(inc 'Py) )
|
||||
(and
|
||||
(>= Py Ay)
|
||||
(>= By Py)
|
||||
(>= (max Ax Bx) Px)
|
||||
(or
|
||||
(> (min Ax Bx) Px)
|
||||
(= Ax Px)
|
||||
(and
|
||||
(<> Ax Bx)
|
||||
(>=
|
||||
(*/ (- Py Ay) 1.0 (- Px Ax)) # Blue
|
||||
(*/ (- By Ay) 1.0 (- Bx Ax)) ) ) ) ) ) # Red
|
||||
|
||||
(de inside (Pt Poly)
|
||||
(let Res NIL
|
||||
(for Edge Poly
|
||||
(when (apply intersects Edge (car Pt) (cdr Pt))
|
||||
(onOff Res) ) )
|
||||
Res ) )
|
||||
Loading…
Add table
Add a link
Reference in a new issue