]> gitweb.factorcode.org Git - factor.git/blob - extra/math/points/points.factor
107e81d51f5ea14b1a57321e616fec9f3b22b07f
[factor.git] / extra / math / points / points.factor
1 USING: kernel arrays math.vectors sequences math ;
2
3 IN: math.points
4
5 <PRIVATE
6
7 : X ( x -- point )      0   0 3array ;
8 : Y ( y -- point ) 0 swap   0 3array ;
9 : Z ( z -- point ) 0    0 rot 3array ;
10
11 PRIVATE>
12
13 : v+x ( seq x -- seq ) X v+ ;
14 : v-x ( seq x -- seq ) X v- ;
15
16 : v+y ( seq y -- seq ) Y v+ ;
17 : v-y ( seq y -- seq ) Y v- ;
18
19 : v+z ( seq z -- seq ) Z v+ ;
20 : v-z ( seq z -- seq ) Z v- ;
21
22 : rise ( pt2 pt1 -- n ) [ second ] bi@ - ;
23 : run ( pt2 pt1 -- n ) [ first ] bi@ - ;
24 : slope ( pt pt -- slope ) [ rise ] [ run ] 2bi / ;
25 : midpoint ( point point -- point ) v+ 2 v/n ;
26 : linear-solution ( pt pt -- x ) [ drop first2 ] [ slope ] 2bi / - ;