Struktur für die Punkte definieren
[code:1](define-struct point (x y))
(define P (make-point 1 1))
(define Q (make-point 2 2))
(define R (make-point 3 3))[/code:1]
Berechnung der Steigung einer Geraden, die durch zwei Punkte verläuft
[code:1](define (find-m P Q)
(/(- (point-y P) (point-y Q))(- (point-x P) (point-x Q)))
)
;; Test:
(find-m P Q)[/code:1]
Berechnung des y-Achsenabschnitts einer Geraden
[code:1](define (find-n P Q)
(- (point-y P) (*(find-m P Q) (point-x P)))
)
;; Test:
(find-n P Q)[/code:1]
Überprüfung ob 3 Punkte eine Gerade bilden mit Hilfe der Pozeduren find-m und find-n
[code:1](define (is-in-line P Q R)
(cond
[(= (+(*(find-m P Q) (point-x R)) (find-n P Q)) (point-y R)) true]
[else false]
)
)
;; Test:
(is-in-line P Q R)[/code:1]
Eine Funktion, die 3 Punkte sowie einen Toleranzwert konsumiert.
Die Funktion soll testen, ob der Abstand des 3. Punktes in y-Richtung zu der Geraden,
die durch die ersten zwei Punkte geht, innerhalb der gegebenen Toleranz liegt.
[code:1];; Toleranz-Wert
(define Wtol
;; Hilfsprozedur
(define (fx P Q R)
(+ (*(find-m P Q)(point-x R)) (find-n P Q))
)
(define (is-in-line-w-tol P Q R)
(cond
[(<= (abs(point-y R)) (abs(+ (fx P Q R) Wtol)) ) true]
[else false]
)
)
;; Test:
(is-in-line-w-tol P Q R)[/code:1]
[code:1](define-struct point (x y))
(define P (make-point 1 1))
(define Q (make-point 2 2))
(define R (make-point 3 3))[/code:1]
Berechnung der Steigung einer Geraden, die durch zwei Punkte verläuft
[code:1](define (find-m P Q)
(/(- (point-y P) (point-y Q))(- (point-x P) (point-x Q)))
)
;; Test:
(find-m P Q)[/code:1]
Berechnung des y-Achsenabschnitts einer Geraden
[code:1](define (find-n P Q)
(- (point-y P) (*(find-m P Q) (point-x P)))
)
;; Test:
(find-n P Q)[/code:1]
Überprüfung ob 3 Punkte eine Gerade bilden mit Hilfe der Pozeduren find-m und find-n
[code:1](define (is-in-line P Q R)
(cond
[(= (+(*(find-m P Q) (point-x R)) (find-n P Q)) (point-y R)) true]
[else false]
)
)
;; Test:
(is-in-line P Q R)[/code:1]
Eine Funktion, die 3 Punkte sowie einen Toleranzwert konsumiert.
Die Funktion soll testen, ob der Abstand des 3. Punktes in y-Richtung zu der Geraden,
die durch die ersten zwei Punkte geht, innerhalb der gegebenen Toleranz liegt.
[code:1];; Toleranz-Wert
(define Wtol

;; Hilfsprozedur
(define (fx P Q R)
(+ (*(find-m P Q)(point-x R)) (find-n P Q))
)
(define (is-in-line-w-tol P Q R)
(cond
[(<= (abs(point-y R)) (abs(+ (fx P Q R) Wtol)) ) true]
[else false]
)
)
;; Test:
(is-in-line-w-tol P Q R)[/code:1]