goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 98880
Top-Poster: Johannes_B (5059)

Wir begrüßen unseren neuesten Benutzer Simona Moses.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

tikz anchor berechnung

 

tobi7212
Forum-Anfänger
Forum-Anfänger

Beiträge: 21
Anmeldedatum: 24.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2014, 08:56     Titel: tikz anchor berechnung
  Antworten mit Zitat      
Ich möchte als Anker für ein Tikz-shape nicht nur die vordefinierten benutzen, wie z.B.
Code • Öffne in Overleaf
anchor=north east

sondern auch
Code • Öffne in Overleaf
anchor=$(south west)!2/3!(south east)$

wie lässt sich das lösen, ohne ein neues shape in pgf-code zu definieren?
Schon mal vielen Dank für eure Unterstützung.
Tobi

Minimalbeispiel:
Code • Öffne in Overleaf

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
   \begin{tikzpicture}
     
      \node[draw] (test1) {test1};
     
      %% Das funktioniert.
      \node [draw,anchor=south west](test2) at ($(test1.north west)!2/3!(test1.north east)$) {test2};
     
      %% Das geht leider nicht. Work arround?
      %\node [draw,anchor=$(south west)!2/3!(south east)$](test2) at ($(test1.north west)!2/3!(test1.north east)$) {test2};

   \end{tikzpicture}
\end{document}
 
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2457
Anmeldedatum: 07.02.10
Wohnort: Stutensee
Version: MiKTeX 2.9
     Beitrag Verfasst am: 25.06.2014, 15:54     Titel:
  Antworten mit Zitat      
Soweit ich weiß, geht das nicht. Neben den south, west etc. Ankern gibt es zwar noch einfache Winkelangaben wie 10 oder 130 als border anchor, also zum Beispiel anchor=10. Aber das entspricht nicht dem, was du suchst. Je nachdem, was dein eigentliches Ziel ist, wirst du gegebenenfalls doch ein neues shape definieren müssen.

Gruß
Elke
Private Nachricht senden Benutzer-Profile anzeigen

tobi7212
Forum-Anfänger
Forum-Anfänger

Beiträge: 21
Anmeldedatum: 24.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2014, 16:03     Titel:
  Antworten mit Zitat      
esdd hat Folgendes geschrieben:
Soweit ich weiß, geht das nicht. Neben den south, west etc. Ankern gibt es zwar noch einfache Winkelangaben wie 10 oder 130 als border anchor, also zum Beispiel anchor=10. Aber das entspricht nicht dem, was du suchst. Je nachdem, was dein eigentliches Ziel ist, wirst du gegebenenfalls doch ein neues shape definieren müssen.

Gruß
Elke


OK, dann muss ich mal sehen, wie ich das anders lösen kann.
Private Nachricht senden Benutzer-Profile anzeigen

Felix
Forum-Century
Forum-Century

Beiträge: 211
Anmeldedatum: 25.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2014, 16:37     Titel:
  Antworten mit Zitat      
Hi Tobi,

ich kann mir vorstellen, dass es geht, Anker zu bestehenden Shapes hinzuzufügen. ich hab grad bisschen Quellcode von PGF deswegen gelesen, es aber nach 15 min erstmal aufgegeben. Embarassed

Du hast bestimmt eine tolle komplexe Grafik im Auge, wo es sich lohnt, den Aufwand zu treiben? Weil eben eine Koordinate aus zwei Standardankern zu berechnen wäre ja einfacher, als einen richtigen Anker anzulegen. Interessant finde ich es aber!

Falls Du Lust hast, und hier vllt. keine Lösung kommt, kannst Du auch auf TeXwelt.de fragen. Da lesen weitere TikZ-Kenner.

Falls ich da ein interessantes TikZ-Bild sehe und eine schwierige Frage, setze ich mich auf jeden Fall dran und versuche es. Für das TikZ-Archiv mache ich es sehr gern, hier gehen mir schöne Lösungen bisschen unter, daher bin ich hier gern zum Plaudern und weniger zum Zähne-Ausbeißen. Very Happy

Felix
Private Nachricht senden Benutzer-Profile anzeigen

tobi7212
Forum-Anfänger
Forum-Anfänger

Beiträge: 21
Anmeldedatum: 24.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2014, 22:35     Titel:
  Antworten mit Zitat      
Felix hat Folgendes geschrieben:
Hi Tobi,

ich kann mir vorstellen, dass es geht, Anker zu bestehenden Shapes hinzuzufügen. ich hab grad bisschen Quellcode von PGF deswegen gelesen, es aber nach 15 min erstmal aufgegeben. Embarassed

Du hast bestimmt eine tolle komplexe Grafik im Auge, wo es sich lohnt, den Aufwand zu treiben? Weil eben eine Koordinate aus zwei Standardankern zu berechnen wäre ja einfacher, als einen richtigen Anker anzulegen. Interessant finde ich es aber!

Falls Du Lust hast, und hier vllt. keine Lösung kommt, kannst Du auch auf TeXwelt.de fragen. Da lesen weitere TikZ-Kenner.

Falls ich da ein interessantes TikZ-Bild sehe und eine schwierige Frage, setze ich mich auf jeden Fall dran und versuche es. Für das TikZ-Archiv mache ich es sehr gern, hier gehen mir schöne Lösungen bisschen unter, daher bin ich hier gern zum Plaudern und weniger zum Zähne-Ausbeißen. Very Happy

Felix


He Felix,
jau, den PGF-Code habe ich auch kurz angesehen, allerdings nur eine minute.. brr. Das kanns doch nicht sein, dachte ich.
Vielen Dank für deinen Einsatz.
Ich bin bisher nicht an der Stelle, wo ich definitif sagen würde:"Das kriege ich auf keinen Fall anders hin".
Für eine hübsch saubere Umsetztung meinte ich die Funktion zu benötigen und war verwundert, dass es scheinbar nicht geht.
Im pgf-manual steht sogar eine Erklärung dazu: Das sei zu rechenaufwendig, mehr als zwei Anker ständig mit zu berechnen. Alle weiteren werden aus den zweien dann durch Koordinatentransformation gefunden.
Aber ich dachte, wenn die das können, dann können wir das auch.
Mir düngt, das Problem ist wohl, dass wir die Lösung erst haben, wenn das Bild schon längst fertig berechnet ist.

Um jetzt auch noch mal damit raus zu rücken, was ich eigentlich vor hatte, hier ein simples Beispiel, vielleicht hatte ich ja nur Gurken auf den Augen, was eine einfach Lösung angeht:
Code • Öffne in Overleaf

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[text width=3em]
\node[draw] (test1) {test1\\test1\\test1\\test1};
\draw ($(test1.north east)!1/3!(test1.south east)$) -|++(1,1){};
\node [draw,right=2 of test1,yshift=-7.7234567890123434](test2)  {test2
};
\draw ($(test1.north east)!2/3!(test1.south east)$) --(test2){};
\end{tikzpicture
}
\end{document}
 

Man beachte die notwendige Benutzereingabe von
Code • Öffne in Overleaf
yshift=-7.7234567890123434

Ich habs ein klein wenig damatisiert:-)
Vielleicht hat ja jemand Spaß daran, sich die Zähne auszubeißen.
Die Höhe des ersten Blocks sei unbekannt.
Wieviele Linien (im gleichmäßigen Abstand !ni/(n+1)!) aus dem ersten Block kommen sei bekannt.
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2457
Anmeldedatum: 07.02.10
Wohnort: Stutensee
Version: MiKTeX 2.9
     Beitrag Verfasst am: 25.06.2014, 22:56     Titel:
  Antworten mit Zitat      
Bei dem Beispiel ist das noch kein Problem:

Code • Öffne in Overleaf
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[text width=3em]
\node[draw] (test1) {test1\\test1\\test1\\test1};
\draw ($(test1.north east)!1/3!(test1.south east)$) -|++(1,1){};
\path ($(test1.north east)!2/3!(test1.south east)$)--+(2,0)node[draw](test2){test2
};
\draw ($(test1.north east)!2/3!(test1.south east)$) --(test2);
\end{tikzpicture}
\end{document}


Gruß
Elke
Private Nachricht senden Benutzer-Profile anzeigen

tobi7212
Forum-Anfänger
Forum-Anfänger

Beiträge: 21
Anmeldedatum: 24.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2014, 23:09     Titel:
  Antworten mit Zitat      
esdd hat Folgendes geschrieben:
Bei dem Beispiel ist das noch kein Problem:

Code • Öffne in Overleaf
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[text width=3em]
\node[draw] (test1) {test1\\test1\\test1\\test1};
\draw ($(test1.north east)!1/3!(test1.south east)$) -|++(1,1){};
\path ($(test1.north east)!2/3!(test1.south east)$)--+(2,0)node[draw](test2){test2
};
\draw ($(test1.north east)!2/3!(test1.south east)$) --(test2);
\end{tikzpicture}
\end{document}


Gruß
Elke


Guten Abend Elke,
vielen herzlichen Dank!
Da waren meinerseits dann also tatsächlich Gurken oder anderes Gemüse im Spiel. Bin zugegebenermaßen auch noch nicht so fortgeschritten, dass ich alle Möglichkeiten von Tikz auf dem Schirm habe.
Private Nachricht senden Benutzer-Profile anzeigen

tobi7212
Forum-Anfänger
Forum-Anfänger

Beiträge: 21
Anmeldedatum: 24.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2014, 23:53     Titel:
  Antworten mit Zitat      
esdd hat Folgendes geschrieben:
Bei dem Beispiel ist das noch kein Problem:

Gruß
Elke


Sorry, ich habe das falsche Beispiel gebaut. Ich kam nicht weiter, als ich beim zweiten Block mehrere Eingänge hatte:
Code • Öffne in Overleaf

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[text width=3em]
\node[draw] (test1) {test1\\test1\\test1\\test1};
\draw ($(test1.north east)!1/3!(test1.south east)$) -|++(1,1){};
\path ($(test1.north east)!2/3!(test1.south east)$)--+(2,0)node[draw,yshift=-5.2345678901234567890](test2){test2\\test2\\test2
};
\draw ($(test1.north east)!2/3!(test1.south east)$) --($(test2.north west)!1/3!(test2.south west)$){};
\draw($(test2.north west)!2/3!(test2.south west)$)++(-1,-1)|-($(test2.north west)!2/3!(test2.south west)$){
};
\end{tikzpicture
}
\end{document}
 

Ist das auch so einfach zu lösen, ohne yshift=-5.2345678901234567890?
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2457
Anmeldedatum: 07.02.10
Wohnort: Stutensee
Version: MiKTeX 2.9
     Beitrag Verfasst am: 26.06.2014, 01:10     Titel:
  Antworten mit Zitat      
Ich hatte mich schon gewundert, deshalb auch das "noch". Auf texwelt.de habe ich mich mal an den Ankern versucht: Wie kann ich zu einem shape zusätzliche Anker definieren? und jetzt dein Beispiel ergänzt.

Gruß
Elke
Private Nachricht senden Benutzer-Profile anzeigen

tobi7212
Forum-Anfänger
Forum-Anfänger

Beiträge: 21
Anmeldedatum: 24.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.06.2014, 09:00     Titel:
  Antworten mit Zitat      
esdd hat Folgendes geschrieben:
Ich hatte mich schon gewundert, deshalb auch das "noch". Auf texwelt.de habe ich mich mal an den Ankern versucht: Wie kann ich zu einem shape zusätzliche Anker definieren? und jetzt dein Beispiel ergänzt.

Gruß
Elke


Hallo Elke, vielen Dank, ich sehe... es ist möglich.
Aber dass für so eine Kleinigkeit soviel Arbeit notwendig ist, ist sehr schade.
Wenn ich jetzt Blöcke mit 3 Eingängen und mit 4 und 5 hätte würde das schon einen ordendlichen Berg Definitionen bedeuten: 1/3 2/3 1/4 2/4 3/4 1/5 2/5 3/5 4/5... Da überlege ich doch, wie ich das Bild anders zeichne oder mich z.B. mit der Blockhöhe festlege, dann kann ich yshift=2/3*Blockhöhe machen oder so.

Auf jeden Fall bin ich von eurer Hilfsbereitschaft sehr beeindruckt und würde da beim nächsten Problem gern wieder drauf zurück kommen!
Liebe Grüße
Tobi
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
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 nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2019 goLaTeX.de