Grenzkurse berechnen

 

Aufgabe Grenzkurse

Seitenpeilung 2 Darstellungen

Fahrzeug A fährt den Kurs rwK = .
Bei einer Seitenpeilung SP =
sieht man ein Positionslicht
des gegnerischen Fahrzeugs B.

Welche Kurse kann das Fahrzeug B fahren?

Anmerkungen


Skizze

Speicherung

Link:
Grafik: Grenzkurse.png

QuizSkizzeLösung

Parameter rwK+SP = rwP

Eigenes Fahrzeug A
rwK =
SP =
rwP =
Gegnerisches Fahrzeug B
rwK =

Lösung Grenzkurse


Grenzkurse berechnen

Aufgabe

Segler A fährt einen Kurs von 120°
und peilt 30° an Steuerbord ein rotes Licht.
Welche Kurse kann Fahrzeug B fahren?

Rechenweg

Bei grünem oder rotem Seitenlicht gilt:

1. Grenzkurs:Gegenkurs  (rwP+180°)
2. Grenzkurs: Grün:
Rot:
Gegenkurs − 112,5°
Gegenkurs + 112,5°

Lösung

Der Gegenkurs ist der erste Grenzkurs.

Überscheinwinkel

In der Praxis sind die Sektoren größer.

Folie

 

Grenzkurse berechnen

Welche Kurse kann das gegnerische Fahrzeug fahren?

Sektorengrenze

 

Sektorengrenze

Eine Elbfähre an den Landungsbrücken:

Der erste Grenzkurs ist der Gegenkurs:

rwP + 180°

= rwK + SP + 180°

Backstage

1) Mathematik

Bei der Programmierung der obigen App sieht man, wie die Mathematik arbeitet.

Zum einen drehen wir das Fahrzeug B um das Fahrzeug A. Zum anderen kann man das Fahrzeug B selber um den Drehpunkt r0 = (x0, y0) rotieren.

Dies ist eine Stufe komplexer als beim Radarplotten. In beiden Fällen nutzen wir Vektoren und Matrizen.

Drehungen

Für die Drehung einer Ecke (x, y)
des Fahrzeugs B um r0 gilt:

x' = x0 + R cos φ −sin φ x
y' y0 sin φ cos φ y
= x0 + x R cos φ − y R sin φ
y0 + x R sin φ + y R cos φ

Orthogonale Basis

Von all unseren Drehungen erwarten wir, dass Abstände und Winkel erhalten bleiben. Mathematisch heißt das, dass die Drehmatrizen orthogonal sein müssen:

|D(φ)| = cos²φ + sin²φ = 1

Beim letzten Rechenschritt nutzen wir den Pythagoras im Einheitskreis.

 

2) Programmierung Javascript

Das Ästhetische bei Programmiersprachen ist die Definition von sogen. Klassen.

Beispiel:
Ein Vektor v(x,y) mit x- und y-Koordinaten:

function Vektor( x, y) {
this.x = x;
this.y = y;
}

Drehmatrix D(φ) dreht Vektor v

Gedrehter Vektor vgedreht = D(φv

function Drehung( v, winkel_grad) {
// Umwandlung von Grad ins Bogenmass:
var winkel_rad = Math.PI*winkel_grad/180;
var x = v.x * Math.cos( winkel_rad);
var y = v.y * Math.sin( winkel_rad);
var v_gedreht = new Vektor( x, y);
return v_gedreht;
}

Realisierung

Definition und Drehung eines Quadrats:

var KL = 30; // Kantenlaenge
var ecken = [
new Vektor( +KL/2, +KL/2),
new Vektor( −KL/2, +KL/2),
new Vektor( −KL/2, −KL/2),
new Vektor( +KL/2, −KL/2),
];
for(var i=0; i<ecken.length; i++) {
ecken[i] = Drehung( ecken[i]);
}

www.harald-blazy.de/segelapps/
grenzkurse.html

Sitemap  •  Datenschutz  •  Impressum
© Harald Blazy