ich möchte gerne den größten Winkel zwischen zwei Dreiecken bestimmen!
1. Normalenvektor --> Winkel Z = Skalarprodukt / Länge
Dabei soll er mir am Ende den größten Winkel ausgeben zwischen zwei Dreiecken:
Code:
for ii = 1:size(allStreetsStruct, 2) %Iteration über alle Straßenabschnitte
xy = allStreetsStruct(ii).streetPts;% Punktkoordinaten
%xy = allStreetsStruct(ii);
n = size(xy, 2)-1;
for jj = 1:n% Iteration über Dreiecke vom Straßenabschnitt (oben)
% wo ist überstumpfe Winkel(180°<L<360°)?
allLines(:, count+1:count+n) = [xy(:, 1:end-1); xy(:, 2:end)];
L = allLines+margin;
count = count+n;
allLength = sqrt((L(1, :)-L(3, :)).^2 + (L(2, :)-L(4, :)).^2);
% normalvector
dy = thresh.*(L(1, :)-L(3, :))./allLength;
dx = -thresh.*(L(2, :)-L(4, :))./allLength;
% Winkel berechnen
S = dot(dx,dy,2);%(x1y1+x2y2)
B = S/ (allLength(1,1)+allLength(1,2));
P = round(acosd(B),4); % cosd -> in degree
Z = real(P);
Ich meinte nicht den Winkel zwischen zwei Dreiecken sondern den Winkel zwischen zwei Vektoren!
Ich habe eine Liste von Punkten durch die ich iteriere(ii = 96 Straßenabschnitte) pro Straßenabschnitt .
Ich suche den größten Winkel (überstumpfer Winkel alpha>180) siehe Anhang.
allLines= alle Linien eines Straßenabschnittes.
allLength = Länge der Seiten durch Pythagoras.
dy, dx = Normalenvektor---> der mir für den Winkel denke ich weniger bringt
Muss ich die Ortsvektoren der Punkte berechnen und dann jeweils den Winkel?
Ich habe eine Liste von Punkten durch die ich iteriere(ii = 96 Straßenabschnitte) pro Straßenabschnitt .
In einem Forum ist es nützlich, alles wegzulassen, was nicht mit dem Problem zu tun hat. Du hast also eine "Liste von Punkten". Um Code empfehlen zu können, wäre es wichtig zu wissen, in welcher Form diese Liste vorliegt. Eine Matrix vielleicht?
Zitat:
allLines= alle Linien eines Straßenabschnittes.
allLength = Länge der Seiten durch Pythagoras.
dy, dx = Normalenvektor---> der mir für den Winkel denke ich weniger bringt
Das ist keine Liste von Punkten. Gehört das zur Frage oder ist es ein Teil Deines Lösungs-Versuchs? Der Winkel zwischen zwei Vektoren ist gleich dem Winkel zwischen ihren Normalen-Vektoren.
Zitat:
Muss ich die Ortsvektoren der Punkte berechnen und dann jeweils den Winkel?
Die Ortsvektoren der Punkte hast Du schon, nämlich die Koordinaten selbst. Welchen Winkel möchtest Du damit berechnen?
Bisher kann ich noch keine konkreten Ratschläge geben. Bitte erkläre das Problem genauer. Wie genau sehen die Inputs aus und was genau möchtest Du als Output?
Gruß, Jan
Einstellungen und Berechtigungen
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
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.