Advertisement
Guest User

Untitled

a guest
May 26th, 2015
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. (check-expect (in-triangle (make-point 101 279) (make-point 459 98) (make-point 353 91) (make-point 178 101)) false)
  2. (check-expect (in-triangle (make-point 453 349) (make-point 79 157) (make-point 49 63) (make-point 199 77)) false)
  3. (check-expect (in-triangle (make-point 322 447) (make-point 62 187) (make-point 339 391) (make-point 265 369)) true)
  4. (check-expect (in-triangle (make-point 0 0) (make-point 0 5) (make-point 5 0) (make-point 1 1)) true)
  5.  
  6. (define-struct point (x y))
  7.  
  8. (define-struct vector (p1 p2))
  9.  
  10. ;(define (vectorLength vec)
  11. ; (sqrt (+ (sqr (- (point-x (vector-p1 vec)) (point-x (vector-p2 vec))))
  12. ; (sqr (- (point-y (vector-p1 vec)) (point-y (vector-p2 vec)))))))
  13.  
  14. (define (denom p1 p2 p3 p)
  15. (+ (* (- (point-y p2) (point-y p3)) (- (point-x p1) (point-x p3)))
  16. (* (- (point-x p3) (point-x p2)) (- (point-y p1) (point-y p3)))))
  17.  
  18. (define (a p1 p2 p3 p)
  19. (/ (+ (* (- (point-y p2) (point-y p3)) (- (point-x p) (point-x p3)))
  20. (* (- (point-x p3) (point-x p2)) (- (point-y p) (point-y p3))))
  21. (denom p1 p2 p3 p)))
  22.  
  23. (define (b p1 p2 p3 p)
  24. (/ (+ (* (- (point-y p3) (point-y p1)) (- (point-x p) (point-x p3)))
  25. (* (- (point-x p1) (point-x p3)) (- (point-y p) (point-y p3))))
  26. (denom p1 p2 p3 p)))
  27.  
  28. (define (c p1 p2 p3 p)
  29. (- (- 1 (a p1 p2 p3 p)) (b p1 p2 p3 p)))
  30.  
  31.  
  32. (define (in-triangle p1 p2 p3 p)
  33. (cond
  34. [(equal? (denom p1 p2 p3 p) 0) false]
  35. [else (and
  36. (and (<= 0 (a p1 p2 p3 p)) (>= 1 (a p1 p2 p3 p)))
  37. (and (<= 0 (b p1 p2 p3 p)) (>= 1 (b p1 p2 p3 p)))
  38. (and (<= 0 (c p1 p2 p3 p)) (>= 1 (c p1 p2 p3 p))))]))
  39.  
  40. ;(define p1 (make-point 0 0))
  41. ;(define p2 (make-point 1 1))
  42. ;(define vectest (make-vector p1 p2))
  43. ;(vectorLength vectest)
  44.  
  45. ;(define p1 (make-point 0 0))
  46. ;(define p2 (make-point 4 4))
  47. ;(define p3 (make-point 5 0))
  48. ;(define p (make-point 10 2))
  49.  
  50. ;(pointInTriangle p1 p2 p3 p)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement