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

Einstellungen 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.

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