Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Finanzederivate mit MATLAB

Studierende:
weitere Angebote

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Plotten von Rechtecken

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.08.2021, 20:31     Titel: Plotten von Rechtecken
  Antworten mit Zitat      
Hallo zusammen,

ich würde gerne eine Fläche mit ganz vielen Parallelogrammen plotten. Die einzelnen Parallelogramme haben Innenwinkel von 60 und 120 Grad und sind jeweils 2,5 Meter breit und hoch.

Anbei der Code:
Code:
alpha_Winkel=0.6509
x_Neu_PP=[];
y_Neu_PP=[];
for pp=0:1.443472979:35     % x-Werte (bei 14 Reihen)
    for mp=0:2.5:15         % y-Werte (7 Spalten)
    x=[pp+0+punktXP pp+2.5+punktXP pp+1.056527021+punktXP pp-1.443472979+punktXP 0+pp+punktXP];      
    y=[0-mp+punktYP 0-mp+punktYP -2.5-mp+punktYP -2.5-mp+punktYP 0-mp+punktYP];
    rotation=[cos(-alpha_Winkel_Para) -sin(-alpha_Winkel_Para);sin(-alpha_Winkel_Para) cos(-alpha_Winkel_Para)];
    m_PP=[x;y];
    P=rotation*m_PP;
    x_gedreht_PP=P(1,:);
    y_gedreht_PP=P(2,:);
    x_Neu_PP=[x_Neu_PP;x_gedreht_PP];
    y_Neu_PP=[y_Neu_PP;y_gedreht_PP];
    hold on; plot(x_Neu_PP,y_Neu_PP,'LineWidth',1.2,'Color','g');
    end
end


Es geht mir nicht darum, dass die Parallelogramme angezeigt werden, sondern vielmehr das die Eckpunkte richtig liegen, was bei mir allerdings nicht der Fall ist.
Im Anhang befindet sich ein Bild wie es sein sollte in Rot (nicht iritieren lassen, die Raster wurden hier ohne Skript erstellt und sind daher zu erkennen) und in grün (vom Code, falsche Darstellung).

Unbenannt.JPG
 Beschreibung:

Download
 Dateiname:  Unbenannt.JPG
 Dateigröße:  80.67 KB
 Heruntergeladen:  13 mal


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.08.2021, 20:39     Titel:
  Antworten mit Zitat      
Hat vllt jemand eine Idee oder einen Tipp wieso das bei mir nur in der erste Zeile richtig ist und in den anderen nicht mehr?

Vielen Dank vorab und beste Grüße!
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 23.351
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.08.2021, 22:59     Titel:
  Antworten mit Zitat      
Hallo,

das Problem dürfte sein, dass du Punkte der einzelnen Parallelogramme plottest und verbindest. Wenn du stattdessen immer nur die neuen Daten plottest, bekommst du Parallelogramme.
Code:
plot(x_gedreht_PP,y_gedreht_PP,...


Bitte generell möglichst lauffähige Beispiele posten. Hier fehlten punktXP, punktYP und alpha_Winkel_Para.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.08.2021, 23:24     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für deine Rückmeldung, tatsächlich ist mir die Darstellung recht egal. Die Werte die in x_Neu_PP und y_Neu_PP abgelegt werden interessieren mich (alos die Werte der Eckpunkte, insgesamt 5 pro Raster und pro x- und y-Wert, die werden für eine spätere Rechnung pro Raster benötigt. Bei 14 Reihen und 7 Spalten sollte ich somit eine x_Neu_PP zu einer 98x5 und y_Neu_PP zu einer 98x5 Matrix ausgegeben bekommen . Und an dieser Stelle stimmt der Code nicht mit meinem gewünschtem Ergebnis, dem roten Raster überein.

Anbei der richtige Code:
Code:
alpha_Winkel_Para=0.6509;
punktXP=0;
punktYP=0;
x_Neu_PP=[];
y_Neu_PP=[];
for i=0:1.443472979:35     % x-Werte (bei 14 Reihen)
    for mp=0:2.5:15         % y-Werte (7 Spalten)
    x=[i+0+punktXP i+2.5+punktXP i+1.056527021+punktXP i-1.443472979+punktXP 0+i+punktXP];      
    y=[0-mp+punktYP 0-mp+punktYP -2.5-mp+punktYP -2.5-mp+punktYP 0-mp+punktYP];
    rotation=[cos(-alpha_Winkel_Para) -sin(-alpha_Winkel_Para);sin(-alpha_Winkel_Para) cos(-alpha_Winkel_Para)];
    m_PP=[x;y];
    P=rotation*m_PP;
    x_gedreht_PP=P(1,:);
    y_gedreht_PP=P(2,:);
    x_Neu_PP=[x_Neu_PP;x_gedreht_PP];
    y_Neu_PP=[y_Neu_PP;y_gedreht_PP];
    hold on; plot(x_Neu_PP,y_Neu_PP,'LineWidth',1.2,'Color','g');
    end
end


Beste Grüße
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 23.351
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.08.2021, 23:39     Titel:
  Antworten mit Zitat      
Hallo,

wie kommst du auf 14 Reihen?

Code:
numel(0:1.443472979:35)
ans =
    25


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2021, 07:06     Titel:
  Antworten mit Zitat      
Hallo Harald,

Habe in meiner letzten Antwort die Reihen und Spalten vertauscht, ich brauche 7 Reihen (Zeilen) und 14 Spalten.
Vllt liegt da schon bei mir der Fehler.

Beste Grüße und vielen Dank
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 23.351
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.08.2021, 08:50     Titel:
  Antworten mit Zitat      
Hallo,

ein Problem dürfte auf jeden Fall darin liegen, dass der Vektor 0:1.443472979:35 wie geschrieben die Länge 25 hat und nicht wie von dir anscheinend beabsichtigt die Länge 14.
Wenn du einen Vektor der Länge 14 haben willst, der von 0 bis 35 geht, ist die einfachste Möglichkeit
Code:


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.