WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Gerade bilden mit gleichem orthongonal Abstand zu 2 weiteren

 

slinshady
Forum-Century

Forum-Century


Beiträge: 115
Anmeldedatum: 12.01.16
Wohnort: ---
Version: R2012b+
     Beitrag Verfasst am: 14.01.2016, 12:27     Titel: Gerade bilden mit gleichem orthongonal Abstand zu 2 weiteren
  Antworten mit Zitat      
Hallo ich möchte eine Funktion schreiben, die 2 Punktpaare übergeben bekommt. Durch diese soll sie zwei lineare Geraden bilden. Die Geraden können, müssen aber nicht, die gleiche Steigung haben. Zum komplizierten Teil:

Es soll eine weitere Gerade oder Funktion errechnet werden deren orthogonaler Abstand zu den beiden anderen Geraden immer gleich ist. Was ich schon herausgefunden habe ist, dass es nicht die Winkelhalbierende ist ^^

Mein Problem in der Darstellung ist allerdings schon, dass ich nicht weiß, wie ich bisher eine Gerade aus zwei Punkten anders darstellen kann als folgendermaßen:

Code:
plot([2; 9],[9;6.5],'g-');


Also ich weiß nicht, wie ich die Gerade in Parameterform plotten lasse.

mit dieser Darstellung fällt eine Allgemeine Berechnung für x-beliebige Bereiche schwer. Es soll letztendlich eine Funktion entstehen, die dies für eine Matrix mit mehreren Randpunkten einer Strecke berechnet. Dabei liegen die Randpunkte nicht immer genau gegenüber, was viele kleine Intervalle verursacht.

Zu Anfang geht es mir aber erstmal darum, dass ich die mittlere Gerade/Funktion für ein Intervall hinbekomme Smile
Mein erster Ansatz war über die Winkelhalbierende aber dies hat leider nicht funkioniert.
Private Nachricht senden Benutzer-Profile anzeigen


ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2016, 12:54     Titel:
  Antworten mit Zitat      
Wie sollen die Punktpaare gespeichert sein? So:

Code:

x=[1 2];
y=[3 4];
 


Dann wäre Punkt 1 (1,3) und Punkt 2(3,4)
Private Nachricht senden Benutzer-Profile anzeigen
 
slinshady
Themenstarter

Forum-Century

Forum-Century


Beiträge: 115
Anmeldedatum: 12.01.16
Wohnort: ---
Version: R2012b+
     Beitrag Verfasst am: 14.01.2016, 13:09     Titel:
  Antworten mit Zitat      
Letztlich bekomme ich eine Tabelle übergeben in der die Matrizen A= [n,2], B=[m,2] sind.

einmal für den inneren und für den äußeren Rand in der einen Zeile ist dann der x-wert in der anderen der y-wert.
Also ich hab zweimal ne x-spalte und zweimal ne y-spalte ^^

d.h. für das erste Paar für die ersten beiden Geraden reicht es die Punkte so auszulesen oder?
so könnte ich doch schonmal alle Punktpaare holen. ( vereinfacht für zwei gleich große Matrizen)

Code:

A= 10*rand([100,2]);
B= 10*rand([100,2]);

for k=1:length(A)-1
    p(k)   = A(k,:);
    p(k+1) = A(k+1,:);
    q(k)   = B(k,:);
    q(k+1) = B(k+1,:);
end

 

meine for-Schleife funktioniert so leider nicht.

eigentlich müsste ich denn mit A(k,Smile die Zeile der Matrix auslesen können ?
Private Nachricht senden Benutzer-Profile anzeigen
 
ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2016, 13:51     Titel:
  Antworten mit Zitat      
Okay,

sind in diesem Beispiel A die x-Werte und B die y-Werte, oder ist in der Matrix A der Punkt(x/y) enthalten und in Matrix B der zweite Punkt(x/y) der Geraden enthalten?

Die for-Schleife macht auch keinen Sinn Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
slinshady
Themenstarter

Forum-Century

Forum-Century


Beiträge: 115
Anmeldedatum: 12.01.16
Wohnort: ---
Version: R2012b+
     Beitrag Verfasst am: 14.01.2016, 13:52     Titel:
  Antworten mit Zitat      
A sind die (x,y) werte innen und B außen
Private Nachricht senden Benutzer-Profile anzeigen
 
ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2016, 13:54     Titel:
  Antworten mit Zitat      
Okay dann ist das mal klar Smile

Und du willst aus deinen Matrizen jetzt noch daten extrahierenß wieso wenn ich fragen darf?
Private Nachricht senden Benutzer-Profile anzeigen
 
slinshady
Themenstarter

Forum-Century

Forum-Century


Beiträge: 115
Anmeldedatum: 12.01.16
Wohnort: ---
Version: R2012b+
     Beitrag Verfasst am: 14.01.2016, 15:40     Titel:
  Antworten mit Zitat      
die Daten stellen die inneren und äußeren Randpunkte einer Straße da, bei welcher ich den gestrichelten Mittelstreifen sozusagen erhalten möchte.
Private Nachricht senden Benutzer-Profile anzeigen
 
ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2016, 16:07     Titel:
  Antworten mit Zitat      
Soll das dann so aussehen schemenhaft?

Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  60.94 KB
 Heruntergeladen:  367 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
slinshady
Themenstarter

Forum-Century

Forum-Century


Beiträge: 115
Anmeldedatum: 12.01.16
Wohnort: ---
Version: R2012b+
     Beitrag Verfasst am: 14.01.2016, 16:34     Titel:
  Antworten mit Zitat      
exakt. Die Schwierigkeit besteht in nicht parallelen Straßen... ^^
Private Nachricht senden Benutzer-Profile anzeigen
 
ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2016, 16:42     Titel:
  Antworten mit Zitat      
Das stimmt - denn da wirst du weder bei beiden einen orthogonalen Abstand erreichen noch wird die Mittellinie eine Mittellinie sein! Da kommt es wohl zu einer Verzerrung Smile

Aber du sollst ja dieses Forum nutzen wenn du programmier-technisch nicht weiter kommst! Die Aufgabe musst du dir selbst stellen und umsetzen probieren! Wenn du an der Umsetzung hängst, dann kannst du weiter fragen!

Deshalb: In welcher programmier-technischen Hinsicht scheiterst du gerade an deiner Umsetzung?

Lg
Private Nachricht senden Benutzer-Profile anzeigen
 
slinshady
Themenstarter

Forum-Century

Forum-Century


Beiträge: 115
Anmeldedatum: 12.01.16
Wohnort: ---
Version: R2012b+
     Beitrag Verfasst am: 14.01.2016, 17:26     Titel:
  Antworten mit Zitat      
Punkte aus der Matrix auslesen und dann immer zwischen dem aktuellen und letzten eine Linie ziehen.
Ich hab mir für die beiden Straßenseiten jetzt das überlegt:

Code:
p = zeros(size(A),2);

for k=1:size(A)-1
    for l=1:2
        hold on
        plot([A(k,l),A(k+1,l)],[A(k,2),A(k+1,2)])
        plot([B(k,l),B(k+1,l)],[B(k,2),B(k+1,2)])
        hold off
    end
end
Private Nachricht senden Benutzer-Profile anzeigen
 
ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2016, 10:05     Titel:
  Antworten mit Zitat      
Hallo,

also wenn du die beiden plots in zwei for-Schleifen hast, dann rechnet dein Comp viel umher! Wie schon gesagt - MatLab ist prinzipiell auf Matrizen-Rechnungen aufgebaut und braucht wenn möglich keine Schleifen! Um es mit deinen Variablen zu veranschaulichen, poste ich folgenden Code:

Code:

plot(A(:,1),A(:,2),B(:,1),B(:,2))
 


Somit zeichnet er zwischen jedem einzelnen Wert eine Linie und tragt dies über die Straße auf
Private Nachricht senden Benutzer-Profile anzeigen
 
slinshady
Themenstarter

Forum-Century

Forum-Century


Beiträge: 115
Anmeldedatum: 12.01.16
Wohnort: ---
Version: R2012b+
     Beitrag Verfasst am: 15.01.2016, 13:10     Titel:
  Antworten mit Zitat      
Ist es möglich diese Linien auch als einzelne Funktionen darzustellen, die nur in diesem Bereich geplottet werden?
damit ich bei nicht gegenüber liegenden Punkten die Lotfußpunkte zur gegenüberliegenden Gerade berechnen könnte?
Private Nachricht senden Benutzer-Profile anzeigen
 
ro_mat
Forum-Century

Forum-Century


Beiträge: 158
Anmeldedatum: 20.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2016, 13:30     Titel:
  Antworten mit Zitat      
Hallo,

vorab noch ein Tipp von mir! Poste immer den dazu gehörenden Code-Abschnitt dazu um ein besseres Verständnis für die Community zu erreichen! Wenn du schreibst:

"Ist es möglich diese Linien auch als einzelne Funktion darzustellen, .. "

Da kann ich mir zwar grob was vorstellen - eine Code würde es allerdings erleichtern - meinst du, eine Variable die nur auf einen Straßenabschnitt (Linie) drauf zugreift?

Code:


Linie_3_A = [A(3:4,1),A(3:4,2)];
Linie_3_B = [B(3:4,1),B(3:4,2)];

 


Also das wär jetzt eine Linie zwischen 3. und 4. Punkt deiner Matrix - sowohl Innen (A) als auch Außen (B)!

Und bei deiner zweiten Frage kann ich dir nichts sagen - weil wann liegen welche Punkte nicht gegenüber? Bsp?

Lg
Private Nachricht senden Benutzer-Profile anzeigen
 
slinshady
Themenstarter

Forum-Century

Forum-Century


Beiträge: 115
Anmeldedatum: 12.01.16
Wohnort: ---
Version: R2012b+
     Beitrag Verfasst am: 15.01.2016, 15:04     Titel:
  Antworten mit Zitat      
Das Beispiel was ich geschrieben habe ist vielleicht blöd. also in der tatsächlichen Simulation später werden die Punkte der Streckenränder nicht mehr gegenüber liegen.

Code:
A=[3,2;4,2;5,3;6,2;8,2];
B=[3,3;4.5,4;5,4;6.2,3;8,3];
plot(A(:,1),A(:,2),B(:,1),B(:,2))


[img]http://www.bilder-upload.eu/show.php?file=ce4b3a-1452863768.jpg[/img]

Hier das Bild des Plots.

Für mich wäre es gut die Geraden zwischen zwei Punkten als tatsächliche Funktionen irgendwo abspeichern zu können. Allerdings darf auf diese Funktionen auch nur im Bereich zwischen den beiden Punkten zugegriffen werden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.