Hallo, Ich hätte folgende Frage. Ich habe ein Hintergrundbild auf diesem positioniere ich Tabellen bzw. Bilder. Die Positionierung von Tabellen / Bilder ist für mich kein Problem. Auch eine Zeichnung auf diesem Hintergrundbild ist kein Problem siehe Code.

Zeichnung: Aber ich will folgendes. Ich möchte einen gewissen Bereich (Feld) auf dem Hintergrundbild für meine Zeichnung reservieren. Dieser Bereich soll skaliert sein. Und von dieser Skalierung aus möchte ich zeichnen. Momentan zeichne am ganzen Hintergrundbild von x -> 0,1 und y -> 0,1. Wie geht das? Bin leider überfordert. Vielen Dank.

Open in writeLaTeX
\documentclass[preview,border=0pt]{standalone}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage{fp}
\usepackage{tikz}
\usepackage{xcolor}
% TikZ-Bibliotheken
\usetikzlibrary{arrows}
\usetikzlibrary{shapes}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{decorations.shapes}
\usetikzlibrary{decorations.text}

\begin{document}
\begin{tikzpicture} 
\node[anchor=south west,inner sep=0,scale=1] (Bild) at (0,0) 
 {\includegraphics[width=23cm,height=16cm]{example-image-a}};
  \begin{scope}[
    x=20cm,y=16cm,
    description/.style={
      fill=white, 
      fill opacity=0, 
      text opacity=1, 
    }
    ]
%Tabelle1 
\node[description,below right] (Objekt1) at (0,1) { 
\begin{tabular}{r|r}
\hline
   Test & Test\\ \hline
   Test &  Test  \\ \hline
   Test & Test \\ \hline
   Test & Test \\ \hline
\end{tabular}        
};

 %Point1
 \coordinate (a) at (.1,.3);
 %Point2
 \coordinate (b) at (.4,.3);
 %Point3
 \coordinate (c) at (.4,.4);
 %Point4
 \coordinate (d) at (.1,.4);

%Verbinden der Punkte:
 \draw[line width=3pt]
 (a) -- (b); %Verbindung der Punkte
 \draw[line width=3pt]
 (b) -- (c);
 \draw[line width=3pt]
 (c) -- (d);

%Belt2:
 %Point1
 \coordinate (q) at (.4,.3);
 %Point2
 \coordinate (w) at (.7,.3);
 %Point3
 \coordinate (e) at (.4,.4);
 %Point4
 \coordinate (r) at (.7,.4);

%Verbinden der Punkte:
 \draw[color=black,line width=3pt]
 (w)-- (q)--(e)--(r);

%Belt3:
 %Point1
 \coordinate (u) at (.3,.4);
 %Point2
 \coordinate (i) at (.3,.7);
 %Point3
 \coordinate (o) at (.5,.4);
 %Point4
 \coordinate (p) at (.5,.7);

%Verbinden der Punkte:
 \draw[line width=3pt]
 (u) -- (i); 
 \draw[line width=3pt]
 (o) -- (p);

%Schweißnaht1:
 %Point1
 \coordinate (m) at (.2,.4);
 %Point2
 \coordinate (n) at (.3,.5);
 %Point3
 \coordinate (o) at (.3,.4);
\filldraw[green] (m) -- (n) -- (o) -- (m);

%Schweißnaht2:
 %Point1
 \coordinate (h) at (.6,.4);
 %Point2
 \coordinate (j) at (.5,.5);
 %Point3
 \coordinate (k) at (.5,.4);
\filldraw[green] (h) -- (j) -- (k) -- (h);

\end{scope}
\end{tikzpicture}   
\end{document}

gefragt 23 Okt '14, 10:38

Peter1's gravatar image

Peter1
8134
Akzeptiert-Rate: 0%

@ijon tichy hallo, Zuerst einmal sorry für die Umstände :) Ich habe mir die Links angeschaut. Aber damit wird meine Frage trotzdem nicht beantwortet. Ich will auf diesem Bild "A" irgendwo ein Feld mit zb. 5cm*5cm festlegen und genau in diesem Feld zeichnen. Und genau dieser Bereich soll wieder von 0 bis 1 skaliert sein. Es geht um die weitere Skalierung die diesen Bereich (5cm * 5cm) wieder skaliert.

(23 Okt '14, 11:23) Peter1

@ijon tichy Dh: Ich habe ein Hintergrundbild das skaliert ist x(0,1) und y(0,1). Weiters habe ich auf diesem Hintergrundbild eine weiteres Bild und dieses weitere Bild möchte ich wieder skalieren x(0,1) und y(0,1) und dort hinein zeichnen. Dh: ich habe 2 Koordinaten Systeme.....

(23 Okt '14, 11:36) Peter1

@@ijon tichy Danke das ist die Lösung! Herzlichen Dank :)))))))

(23 Okt '14, 12:18) Peter1

Ein scope kann man auf einem Bild ganz einfach mit xshift und yshift verschieben. Ebenso kann man mit Hilfe von scale die Maßbasis verändern, so dass (1,1) eine gewünschte Größe erreicht:

Open in writeLaTeX
\documentclass[preview,border=0pt]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture} 
  \node[anchor=south west,inner sep=0,scale=1] (Bild) at (0,0) 
  {\includegraphics[width=23cm,height=16cm]{example-image-a}};
 \begin{scope}[
   xshift=2cm,
   yshift=3cm,
   scale=5,
   description/.style={
     fill=white, 
     fill opacity=0, 
     text opacity=1, 
   }
   ]
   \draw[step=0.1,black,thin] (0,0) grid (1,1);
 \end{scope}
\end{tikzpicture}   
\end{document}

Das geht auch für die x- und y-Ausdehnung getrennt, wenn man statt zwischen (0,0) und (1,1) ein Feld aufspannen will, das doppelt so breit wie hoch ist:

Open in writeLaTeX
\documentclass[preview,border=0pt]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture} 
  \node[anchor=south west,inner sep=0,scale=1] (Bild) at (0,0) 
  {\includegraphics[width=23cm,height=16cm]{example-image-a}};
 \begin{scope}[
   xshift=2cm,
   yshift=3cm,
   xscale=10,
   yscale=5,
   description/.style={
     fill=white, 
     fill opacity=0, 
     text opacity=1, 
   }
   ]
   \draw[step=0.1,black,thin] (0,0) grid (1,1);
 \end{scope}
\end{tikzpicture}   
\end{document}

Ich habe hier als Zeichnung auf dem Bild einfach ein Grid (Raster) verwendet. Man kann natürlich auch andere Dinge darauf zeichnen. Man kann sogar an Stelle des grid ein node mit einer weiteren tikzpicture aufspannen, wenn man das möchte. Dabei erbt die innere tikzpicture automatisch die Eigenschaften des node.

Permanenter link

beantwortet 23 Okt '14, 12:00

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 23 Okt '14, 12:59

1

@Peter: Danke für die Punkte. Aber statt mir zusätzliche Punkte zu geben, solltest Du besser einfach nur auf den Daumen hoch und ggf. auf den Haken klicken. Die Punkte, die Du mir zusätzlich gibst, gehen nämlich von Deinem Punkte-Konto ab. Die Punkte, die man für Daumen und Haken bekommt, sind hingegen sozusagen neue Punkte, die das System vergibt.

(23 Okt '14, 12:22) gast3

Wenn ein node Optionen hat, muss man mit einem inneren tikzpicture vorsichtig sein, da dieses die Optionen des äußeren node erbt.

(23 Okt '14, 12:41) esdd
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×728
×76
×3

gestellte Frage: 23 Okt '14, 10:38

Frage wurde gesehen: 7,956 Mal

zuletzt geändert: 23 Okt '14, 12:59