Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (check-expect (in-triangle (make-point 101 279) (make-point 459 98) (make-point 353 91) (make-point 178 101)) false)
- (check-expect (in-triangle (make-point 453 349) (make-point 79 157) (make-point 49 63) (make-point 199 77)) false)
- (check-expect (in-triangle (make-point 322 447) (make-point 62 187) (make-point 339 391) (make-point 265 369)) true)
- (check-expect (in-triangle (make-point 0 0) (make-point 0 5) (make-point 5 0) (make-point 1 1)) true)
- (define-struct point (x y))
- (define-struct vector (p1 p2))
- ;(define (vectorLength vec)
- ; (sqrt (+ (sqr (- (point-x (vector-p1 vec)) (point-x (vector-p2 vec))))
- ; (sqr (- (point-y (vector-p1 vec)) (point-y (vector-p2 vec)))))))
- (define (denom p1 p2 p3 p)
- (+ (* (- (point-y p2) (point-y p3)) (- (point-x p1) (point-x p3)))
- (* (- (point-x p3) (point-x p2)) (- (point-y p1) (point-y p3)))))
- (define (a p1 p2 p3 p)
- (/ (+ (* (- (point-y p2) (point-y p3)) (- (point-x p) (point-x p3)))
- (* (- (point-x p3) (point-x p2)) (- (point-y p) (point-y p3))))
- (denom p1 p2 p3 p)))
- (define (b p1 p2 p3 p)
- (/ (+ (* (- (point-y p3) (point-y p1)) (- (point-x p) (point-x p3)))
- (* (- (point-x p1) (point-x p3)) (- (point-y p) (point-y p3))))
- (denom p1 p2 p3 p)))
- (define (c p1 p2 p3 p)
- (- (- 1 (a p1 p2 p3 p)) (b p1 p2 p3 p)))
- (define (in-triangle p1 p2 p3 p)
- (cond
- [(equal? (denom p1 p2 p3 p) 0) false]
- [else (and
- (and (<= 0 (a p1 p2 p3 p)) (>= 1 (a p1 p2 p3 p)))
- (and (<= 0 (b p1 p2 p3 p)) (>= 1 (b p1 p2 p3 p)))
- (and (<= 0 (c p1 p2 p3 p)) (>= 1 (c p1 p2 p3 p))))]))
- ;(define p1 (make-point 0 0))
- ;(define p2 (make-point 1 1))
- ;(define vectest (make-vector p1 p2))
- ;(vectorLength vectest)
- ;(define p1 (make-point 0 0))
- ;(define p2 (make-point 4 4))
- ;(define p3 (make-point 5 0))
- ;(define p (make-point 10 2))
- ;(pointInTriangle p1 p2 p3 p)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement