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

Raster plotten / exakt drucken

 

max3.2
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 26.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.01.2013, 17:24     Titel: Raster plotten / exakt drucken
  Antworten mit Zitat      
Hallo Leute,

Ich habe ein Problem, vllt könnt ihr mir helfen...
Und zwar brauche ich ein x-y-Raster (zB 5 mm) mit überlagerten Kreisen diverser Radi als Ausdruck auf A4. Das ganze darf nicht skaliert werden, sprich muss nach dem Druck auch die gleichen Maße haben wie digital. Da scheitert es dann auch mit Grafikprogrammen, da wird immer etwas rumskaliert..
Also mal ein Versuch mit Matlab.

Ich habe momentan das, relativ simpel. Erzeugt das Gitter und die Kreise. Meine Idee (daher auch der "Überhang"). Hierraus einen Ausschnitt, der durch konkrete Koordinaten um den Kreismittelpunkt definiert ist (da alles in mm ist dann die A4 Seitenlängen...) ausschneiden / direkt an den Drucker senden.
Gibts sowas? Andere Möglichkeiten?
Wenn das Blatt nicht komplett voll bedruckt ist (Rand +-5mm....), geht das. Aber Matlab-Axen o.Ä. dürfen nicht auftauchen


Grüße
Max

PS: Das auskommentierte war eine Idee, in px statt mm zu arbeiten...aber macht für mich keinen Sinn. Anmerkungen hierzu aber auch gerne wilkommen Smile

Code:

clc;clear all;close all;

% dpi = 100; %Druckauflösung in DPI
%
% % Berechung der Pixelanzahl
%
% dpmm = dpi / 25.4; %px pro mm


hx = 5; % Abstand der Rasterlinien x
hy = 5; % Abstand der Rasterlinien y
ex = 15; % Testüberhang wenn Ausschnitt möglich, in prozent


xle = 210 * (1+(ex/100)) ; % A4 plus extra in mm
yle = 297 * (1+(ex/100)); % A4 plus extra in mm

% Plotfläche

li = xle / hx;
lj = yle / hy;

% diskretisieren per 1ser
G = ones((li+1),(lj+1));  
% x- und y-Koordinaten für Gitterpunkte bestimmen:
gx = (cumsum(G,1) .* hx) - hx;
gy = (cumsum(G,2) .* hy) - hy;

% Definition der Kreise

r=(50:25:200);
xcenter=xle / 2;
ycenter=yle / 2;
t=0:.001:2*pi;

% Darstellung des Gitternetzes

figure
plot(gx,gy,'k');
hold on
plot(gx',gy','k');
%und der Kreise
n = size(r);
for i=1:n(1,2)
plot(r(i)*cos(t)+xcenter,r(i)*sin(t)+ycenter,'k');
end
hold off
axis equal
shg
 
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.01.2013, 11:22     Titel: Re: Raster plotten / exakt drucken
  Antworten mit Zitat      
Hallo max3.2,

Was ist nun genau die Frage? Funktioniert der gezeigte Code wie gewünscht, oder wo bestehen noch Probleme?

Wenn die AXES unsichtbar sein sollen, setze das Property 'Visible' auf 'off'.
Ob Du in px oder cm arbeitest is egal, da beides Längenmaße sind.
Zitat:
Das ganze darf nicht skaliert werden, sprich muss nach dem Druck auch die gleichen Maße haben wie digital.

Ja, das ist eine echte schwierigkeit. Was bedeuten Maße schon bei digitaler Speicherung?!

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
max3.2
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 26.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2013, 14:24     Titel:
  Antworten mit Zitat      
Das ist manchmal schwer zu formulieren Wink Also der Code funktioniert und produziert das Raster + Kreise.
Kurz: Wie bekomm ich das aufs Papier dass nur das Raser + Kreise (ohne Achsen etc.) drauf ist, und das aus den "5" Rasterabstand auf dem Papier 5 mm werden. Und nicht 4,9 oder 5,1 sonder eben 5 :-/
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.01.2013, 14:54     Titel:
  Antworten mit Zitat      
Hallo max3.2,

Das Verstekcen des AXES hatte ich bereits beschrieben:
Code:
set(gca, 'Visible', 'off');


Der Bildschirm kann skaliert sein, Matlab's renderer kann skalieren. der PRINT-Befehl kann sklaieren, der Druckertreiber kann skalieren und der Drucker selbst auch, falls z.B. ein anderes Papierformat ausgewählt wird.
Die einzige Methode, auf die ich mich verlassen würde, ist: Ausprobieren.
Zeichne Deine Objekte und drucke sie aus. Dann miss den Abstand nach und skaliere die Grafik in Matlab, in PRINT, im Drucktreiber oder wo es sonst nich möglich ist um den gewünschten Faktor.

Ich bezweifele, dass es eine andere zuverlässige Methode bei der absoluten Dimension der Ausgabe auf Papier gibt.
Vergleichbares gilt für die Farbdarstellung eines RGB Pixels auf dem Bildschirm oder dem Ausdruck. Nur herrscht hier kein lineare Zusammenhang, so dass das Kalibrieren viel komplizierter ist.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
max3.2
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 26.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.01.2013, 19:25     Titel:
  Antworten mit Zitat      
Hallo,

danke für deine Hilfe. Skalieren hat geholfen. Zwar mit Zwischendruck, aber allein an 2 Drucker ist der Faktor anders, das scheint nur so zu gehen Smile

Momentan gehe ich der Umweg per pdf - sonst ist das irgendwie schwer auf das ganze Blatt zu verteilen. Hier mal der Code zum pdf...

Ein Problem bleibt - Im pdf ist noch ein breiter Rand (es scheint da, wo die Axen sind....)....Gibt es eine Möglichkeit, den weg zu bekommen?

Code:

% Darstellung des Gitternetzes

figure
plot(gx,gy,'k');
hold on
plot(gx',gy','k');
%und der Kreise
n = size(r);
for i=1:n(1,2)
plot(r(i)*cos(t)+xcenter,r(i)*sin(t)+ycenter,'k');
end
hold off
axis manual
axis equal
axis([0 xle 0 yle]);
axis off
hf = gcf;
set(hf,'PaperPositionMode', 'manual', 'PaperUnits','centimeters', 'Paperposition',[0 0 21 29.7]);
print(hf, '-dpdf', 'test1.pdf');
close all
 
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 - 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.