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

Grafik-Skalierungs-Frage

 

arminius
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 16.04.18
Wohnort: Italien
Version: ---
     Beitrag Verfasst am: 16.04.2018, 12:29     Titel: Grafik-Skalierungs-Frage
  Antworten mit Zitat      
Hallo!
Ich habe in Scilab einen Plotter geschrieben, um Flugzeugprofile zu plotten und dann als eps auszugeben. Also ich habe hier rund 40 Profile und die Koordinaten lese ich in einem Loop und plotte sie dann.

Als schwierig erwies sich dabei für mich, eine vernünftige Skalierung hinzubekommen.
Nun klappt das alles relativ gut, aber ich bekomme es nicht vernünftig hin, dass um den Plot keine große freie Fläche vorhanden ist (diese bestimmt die bounding Box in eps). Wie heißt hier der Parameter?
Gerade bei dicken Profilen (660er) ist viel zu viel Luft.

Als kleines Nebenproblem wollte ich das Textformat umstellen mit
a.ticks_format = ["","%.2f",""]; , was funktioniert, aber so im Plot nicht dargestellt wird. (ich will an den Achsen immer das gleiche Format 0.10, 0.05 etc und
nicht 0.1, 0.05)

Kritik am Programm willkommen. ich habe das mit der Reihenfolge, wie man das bspw mit dem gcf ... macht nicht völlig verstanden.
Also erst mal lädt man eine default-figure und das Format wird dann modifiziert.

Code:

// Airfoil_Plotter  // Pfade anpassen!!

xp='d:/.../.../scilab/testdir/'; //PATH
files=ls('d:/.../.../scilab/testdir/*.dat')  // Profile Endung .dat
[leng, m] = size(files);
[aa,bb,cc] = fileparts(files(:));
files=bb+cc;

scf(2);               // Fenster-Nummer
clf(2);               //

for i=1:leng    do
datei=files(i);
//datei='fx79w660a.dat'
u = file('open',xp+datei,'unknown');
datei=bb(i)

xdel
name=read(u,1,1,"(A)");
B = read(u,-1,2);
x = B(:,1)
y = B(:,2)
file('close',u)

yminR=min(y);
ymaxR=max(y);

titel="$\huge\sf\bf "+name+"$"
//   xxxxxxxx Sehne Plotten xxxxxxxxx
xd=[0,1];
yd=[0,0];

f=gdf()                         //get('default_figure')
f.figure_position= [0 0]
f.auto_resize="off";           //  Grafik skalieren
thick = (ymaxR-yminR)*1000
disp(thick,datei);
f.axes_size   = [1000 thick];  // Reale Achslaenge
//f.figure_size = [900 thick];

title(titel, 'position',[0.2 0.0], 'background', -2, 'rotation',0);

a=gca()                                   //get current axes
a.box="off";  
a.ticks_format = ["","%.2f",""];           // GEHT NICHT(??)
a.x_location   = "origin";
a.parent.background=-2;
a.font_size = 4;
a.data_bounds=[0,yminR,0;1,ymaxR,0]
a.grid=[1 1]     // gca,[Farbe] Identisch zu: set(gca(),"grid",[1 1]);
a.clip_state="on";
a.tight_limits = ["on","on","on"] // ENG in y-Richtung
//a.y_ticks.labels = ["-0.01";"-0.05";"0.00";"0.05";"0.01";"0.15"]
a.cube_scaling = "off"      //macht ein Quadrat
a.isoview="on"

plot2d(xd, yd, style=1);
plot2d(x, y, style=1,frameflag=4);  // Style=Farbe Linie

p=gce();  //identisch p = get("hdl");get('current_figure') equiv. gcf
p.children.mark_mode  = "off";  // ??
p.children.mark_style = 0;      // Form Punkte (0=nix)
p.children.thickness  = 2;      // Dicke Linie
pp.children.thickness = 3;      // Linie X von 0 bis 1
p.children.mark_foreground = 1; // Farbe Punkte


xs2eps(gcf(),xp+datei+'.eps')  // Plot on EPS
xs2png(gcf(),xp+datei+'.png')  // Check on png

end
 


Beispiel-Profildateien (gekürzt!!) xxx.dat
Code:

AH\ 93\!-\!W\!-\!145
1.00000     0.00033
0.37059     0.11094
0.00000     0.00000
0.22221     -0.03535
1.00000     -0.00162
1.00000     0.00033
 


Code:

FX\ 79\!-\!W\!-\!660A
1.00000     0.04237
0.99893     0.04675
0.43474     0.34602
0.00000     0.00000
0.46730     -0.31896
0.99893     -0.04728
1.00000     -0.04239
 

Code:

NACA\ 64\!-\!618
   1.00000      0.00000
    0.39418      0.11792
    0.00000     -0.00054
   0.00008     -0.00163
    0.32760     -0.06295
    1.00000      0.00000
 
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
.





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

Hosted by:


Copyright © 2007 - 2024 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.