Find the intersection of two lines: Difference between revisions

Content added Content deleted
(Add emacs lisp)
Line 953: Line 953:
<pre>{5.000000, 5.000000}
<pre>{5.000000, 5.000000}
{-inf, -inf}</pre>
{-inf, -inf}</pre>

=={{header|Emacs Lisp}}==
<syntaxhighlight lang="lisp">
;; y = a*x + b
(let ()
(defun line-prop (p1 p2)
(let* ((prop-a (/ (- (plist-get p2 'y) (plist-get p1 'y))
(- (plist-get p2 'x) (plist-get p1 'x))))
(prop-b (- (plist-get p1 'y) (* prop-a (plist-get p1 'x)))))

(list 'a prop-a 'b prop-b) ) )

(defun calculate-intersection (line1 line2)
(let (int-x int-y)
(setq int-x (/ (- (plist-get line2 'b) (plist-get line1 'b))
(- (plist-get line1 'a) (plist-get line2 'a))))
(setq int-y (+ (* (plist-get line1 'a) int-x) (plist-get line1 'b)))
(list 'x int-x 'y int-y) ) )

(let ((p1 '(x 4.0 y 0.0)) (p2 '(x 6.0 y 10.0))
(p3 '(x 0.0 y 3.0)) (p4 '(x 10.0 y 7.0)))
(let ((line1 (line-prop p1 p2))
(line2 (line-prop p3 p4)))
(message "%s" (calculate-intersection line1 line2) ) ) )
</syntaxhighlight>

{{out}}
<pre>
(x 5.0 y 5.0)
</pre>


=={{header|F_Sharp|F#}}==
=={{header|F_Sharp|F#}}==