[Scheme] Punkte

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [Scheme] Punkte

    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 8)
    ;; 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]