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

Dreieck in Matlab nur mit Winkeln konstruieren

 

Klaus12345

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.02.2010, 15:40     Titel: Dreieck in Matlab nur mit Winkeln konstruieren
  Antworten mit Zitat      
Hallo,
bin in Matlab ein totaler Anfänger und habe ein Problem.
Ich habe Messdaten, von einem Dreieck und kenne nur die drei Winkel, kann mir jemand weiterhelfen, wie ich das Dreieck in Matlab plotten kann, die Seitenlänge ist nicht so wichtig.
Bitte um Hilfe!
LG


turbo82
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.02.2010, 12:02     Titel:
  Antworten mit Zitat      
hi,

also ich möchte mal den theoretischen weg skizzieren:

1. eine seitenlänge beliebig wählen (z.b. =1)
2. aus dem Sinussatz die anderen längen berechnen (a/sin(alpha)=b/sin(beta)=c/(sin(gamma))
3. dreieck mittels einer Höhe in zwei rechtwinklige dreiecke unterteilen (sin(alpha)=h/b)
4. unterteilte längenabschnitte berechnen

fürs plotten einfach eine seite auf die x-achse (damit hast du zwei punkte des dreieckes) und über die höhe und den längenabschnitt ist sofort der dritte punkt zu erhalten

mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
HFS45
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 19.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.02.2010, 14:50     Titel:
  Antworten mit Zitat      
Hallo!
Hab dir mal das ganze gecodet, sollte selbsterklärend sein! Da man nur 2Winkel braucht für ein Dreieck habe ich den dritten mal weggelassen
Code:

function [] =  drawTriangle(alpha,beta,default_length)
%     *
%    *    *  
%   *        *  
%  *alpha   beta *
% ******************
%   default_length

%-------------------------------
% this function works in deg
% if input values are in rad please comment
% following two lines of code
%-------------------------------
alpha = alpha * pi/180;
beta = beta * pi/180;

x = [0,default_length,0,0];
y = [0,0,0,0];

%-------------------------------
% calculate both slopes for alpha and beta
%-------------------------------
k1 = tan(alpha);
k2 = -tan(beta);

%-------------------------------
% calculate third point
%-------------------------------
x(3)=(-default_length*k2)/(k1-k2);
y(3)=k1*x(3);

plot(x,y)
%-------------------------------
% adjust axes to the triangle and add an offset to all sides
%-------------------------------
offset = 1;
axis([min(x)-offset max(x)+offset min(y)-offset max(y)+offset])
end
 


Beispielaufruf:
Code:
drawTriangle(35,75,5)


Lg HFS45
Private Nachricht senden Benutzer-Profile anzeigen
 
Klaus12345

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2010, 12:38     Titel:
  Antworten mit Zitat      
Hallo HFS45!

Vielen Dank für deinen Code, aber wenn ich mir ein Dreieck zeichnen lasse stimmen die Winkeln nicht ganz.

Ich glaube, dass die Berechnung von x(3) nicht ganz stimmt, weiss aber nicht was falsch ist.

LG
 
HFS45
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 19.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2010, 12:46     Titel:
  Antworten mit Zitat      
gib mir bitte das Beispiel (den exakten Aufruf) bei dem die Winkel angeblich nicht passen! Ohne dem ganzen kann ich dir nur schwer helfen!

Wie soll ich sonst den Fehler finden! Bei meinen probierten Beispielen scheint nämlich alle zu passen!
Private Nachricht senden Benutzer-Profile anzeigen
 
Klaus12345

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2010, 13:43     Titel:
  Antworten mit Zitat      
Hi, hab das ganze so in mein Programm eingefügt, der WinkelRELB=55.4978 und WinkelLELB=49.3919 und der dritte winkel sollte dann 75.1104 groß sein (summe = 180°) wenn ichs zeichne kommt aber was anderes raus. Habs auch schon mit einer default_lenght von 100 probiert.

%-------------------------------
alpha = WinkelRELB * pi/180;
beta = WinkelLELB * pi/180;
default_length = 5;

x = [0,default_length,0,0];
y = [0,0,0,0];

%-------------------------------
% calculate both slopes for alpha and beta
%-------------------------------
k1 = tan(alpha);
k2 = -tan(beta);

%-------------------------------
% calculate third point
%-------------------------------
x(3)=(-default_length*k2)/(k1-k2);
y(3)=k1*x(3);



DANKE LG
 
HFS45
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 19.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2010, 15:24     Titel:
  Antworten mit Zitat      
Hallo!

Und wo ist jetzt der Fehler? ich habe die beiden Winkel ausprobiert und sehe keinen wirklichen Fehler! Du musst mir schon konkret sagen was falsch ist bzw. warum du weißt bzw. annimmst dass was falsches rauskommt!

Ein Typischer Fehlerreport der mir helfen würde, ist folgendermaßen aufgebaut:

1: Hast du mein Programm verändert oder verwendest du es so wie es ist?
Wenn du das Programm verändert hast musst du auch noch dazuschreiben was du geändert hast. Der exakte Codeaufruf ist wichtig für die Fehleranalyse! -> das weiß ich ja nun

2: bei welchen Testaten trat der Fehler auf:
weiß ich nun auch: alpha= 55.4978 und beta=49.3919

3: Was ist der Fehler? Wodurch macht sich der Fehler bemerkbar?? Woran erkennst du dass da ein Fehler sein müsste?? -> ich sehe nämlich keine!
Von mir aus mache eine Screenshot oder sonst was, ich kann nämlich nicht nachvollziehen wo der Fehler liegen sollte!

Lg HFS45

Ps.: mir ist gerade was eingefallen! Liest du etwa den Winkel direkt vom Bildschirm mit dem Geodreieck ab?? ->Wenn ja , dann denk mal drüber nach wo da der Fehler liegen könnte!
Private Nachricht senden Benutzer-Profile anzeigen
 
HFS45
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 19.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2010, 15:44     Titel:
  Antworten mit Zitat      
Ein Tipp: Wenn du die Größe (Breite bzw Höhe) des Fensters mit der Maus veränderst, ändern sich dann nicht auch die Winkel?

Bzw. wie sieht die Ausgabe aus! Du hast ja scheinbar meine Code modifiziert! Leider fehlt da die Ausgabe! Hast du die Zeilen ab plot 1:1 übernommen?
Private Nachricht senden Benutzer-Profile anzeigen
 
HFS45
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 19.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2010, 15:49     Titel:
  Antworten mit Zitat      
Probier mal das:
Code:

function [] =  drawTriangle(alpha,beta,default_length)
%     *
%    *    *  
%   *        *  
%  *alpha   beta *
% ******************
% default_length
%-------------------------------
% this function works in rad
% if input values are in deg please uncomment
% following two lines of code
%-------------------------------
alpha = alpha * pi/180;
beta = beta * pi/180;

x = [0,default_length,0,0];
y = [0,0,0,0];

%-------------------------------
% calculate both slopes for alpha and beta
%-------------------------------
k1 = tan(alpha);
k2 = -tan(beta);

%-------------------------------
% calculate third point
%-------------------------------
x(3)=(-default_length*k2)/(k1-k2);
y(3)=k1*x(3);

plot(x,y)
%-------------------------------
% adjust axes to the triangle and add an offset to all sides
%-------------------------------
offset = 1;
axis([min(x)-offset max(x)+offset min(y)-offset max(y)+offset])
axis equal
end
 

Ich hoffe jetzt mal dass das Problem gelöst ist!
Private Nachricht senden Benutzer-Profile anzeigen
 
Klaus12345

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2010, 16:15     Titel:
  Antworten mit Zitat      
Hi HFS45!!

Hast recht, hab das mit der Achsenskalierung nicht bedacht!
Mim Geodreieck stimmts jetzt auch!!!

VIELEN DANK!!!!
LG
 
Neues Thema eröffnen Neue Antwort erstellen



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.