goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


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

Forenstatistik:
Beiträge: 100222
Top-Poster: Johannes_B (5063)

Wir begrüßen unseren neuesten Benutzer TextersLabor.

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

Thermometer Grafik anpassen

 

Moritz_F
Forum-Newbie
Forum-Newbie

Beiträge: 9
Anmeldedatum: 07.01.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2019, 12:30     Titel: Thermometer Grafik anpassen
  Antworten mit Zitat      
Hallo,

ich habe mir ein Thermometer zurechtgebastelt:

Code

\documentclass{standalone}
%\usepackage[showframe]{geometry}
\usepackage{fourier}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[y=0.5pt, x=0.5pt,yscale=-1, inner sep=0pt, outer sep=0pt]
\def\thermopath{
  (280.0313,169.3125) .. controls (263.9888,169.3125) and (250.6461,179.3446) ..
  (247.8125,192.5625) --
  (247.3438,563.7500) .. controls (235.7346,573.2243) and (228.3438,587.6282) ..
  (228.3438,603.7813) .. controls (228.3438,632.3161) and (251.4651,655.4688) ..
  (280.0000,655.4688) .. controls (308.5349,655.4688) and (331.6563,632.3161) ..
  (331.6563,603.7813) .. controls (331.6563,587.6282) and (324.2654,573.2243) ..
  (312.6563,563.7500) --
  (312.2500,192.5625) .. controls
  (309.4164,179.3446) and (296.0737,169.3125) .. (280.0313,169.3125) -- cycle
 
}
\path[miter limit=4,even odd rule,fill=gray!20]
    \thermopath;

\def\tempincelsius{55}
\begin{scope}
    \clip \thermopath;
    \fill[red] (210,{560- 3.7*\tempincelsius}) -- ++(140,0)
        -- (350, 690) -- (210, 690) -- cycle;
\end{scope}

\path[draw=black,miter limit=4,even odd rule,line width=2.5pt]
    \thermopath;
   
   

\foreach \y/\x in {190/4,
                   236.25/3,
                   282.5/2,
                   328.75/1,
                   375/0,
                   421/-1,
                   467.5/-2,
                   513.75/-3,
                   560/-4%
                   }
    {
    \draw (210,\y)--(190,\y) node[left](\x){\x
};
    }
\foreach \u/\v in {190/sehr heiss,
                   236.25/heiss,
                   282.5/warm,
                   328.75/leicht warm,
                   375/neutral,
                   421/leicht kühl,
                   467.5/kühl,
                   513.75/kalt,
                   560/sehr kalt%
                   }
    {
    \draw (350,\u)--(370,\u) node[right](\v){\v
};
    }


\draw node[xshift=-5em, OrangeRed] at (260,140) {Index};
\draw node[xshift=-5em, OrangeRed] at (500,140) {Thermisches Empfinden};
   

\end{tikzpicture}
\end{document}


Was mir jetzt noch fehlt:

Abstand der Wörter (kühl,...) von der Achse. Habe das mit Tilde probiert, es funktioniert, aber es kommt eine Fehlermeldung.

Zusätzlich würde ich gerne das ganze Thermometer füllen und unten mit blau beginnen lassen, dann gelb (neutral) und oben rot haben.


Ist so etwas möglich?

Danke für Euer Feedback Smile
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1941
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 30.03.2019, 15:52     Titel:
  Antworten mit Zitat      
Als Vorlage für das Beispiel diente vermutlich die Antwort des Nutzers quinmars.

Code
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}

\begin{document}
% Abstand vergrößert durch das Entfernen von inner sep und outer sep
\begin{tikzpicture}[y=0.5pt, x=0.5pt,yscale=-1]
\newcommand{\thermopath}{
  (280.0313,169.3125) .. controls (263.9888,169.3125) and (250.6461,179.3446) ..
  (247.8125,192.5625) --
  (247.3438,563.7500) .. controls (235.7346,573.2243) and (228.3438,587.6282) ..
  (228.3438,603.7813) .. controls (228.3438,632.3161) and (251.4651,655.4688) ..
  (280.0000,655.4688) .. controls (308.5349,655.4688) and (331.6563,632.3161) ..
  (331.6563,603.7813) .. controls (331.6563,587.6282) and (324.2654,573.2243) ..
  (312.6563,563.7500) --
  (312.2500,192.5625) .. controls
  (309.4164,179.3446) and (296.0737,169.3125) .. (280.0313,169.3125) -- cycle
 
}
\path[miter limit=4,even odd rule,fill=gray!20]
    \thermopath;

%\newcommand{\tempincelsius}{55}
\begin{scope}
    \clip \thermopath;
    \fill[blue!90!yellow] (210,559) rectangle (350, 660);
    \fill[red!90!yellow] (210,165) rectangle (350, 191);
    \draw[draw=none, top color=red, bottom color=blue, middle color=yellow] (210,190) rectangle (350, 560);
\end{scope}

\path[draw=black,miter limit=4,even odd rule,line width=2.5pt]
    \thermopath;

\foreach \y/\x in {190/4,
                   236.25/3,
                   282.5/2,
                   328.75/1,
                   375/0,
                   421/-1,
                   467.5/-2,
                   513.75/-3,
                   560/-4%
                   }
    {
    \draw (210,\y)--(190,\y) node[left](\x){$\x$
};% Anpassung für die negativen Vorzeichen
    }
\foreach \u/\v in {190/sehr heiss,
                   236.25/heiss,
                   282.5/warm,
                   328.75/leicht warm,
                   375/neutral,
                   421/leicht kühl,
                   467.5/kühl,
                   513.75/kalt,
                   560/sehr kalt%
                   }
    {
    \draw (350,\u)--(370,\u) node[right](\v){\v
};
    }

% Zusammenfassung der Optionen
\begin{scope}[xshift=-5em, OrangeRed]
\node at (260,140) {Index};
\node at (500,140) {Thermisches Empfinden};
\end{scope}
\end{tikzpicture}
\end{document}


Nachtrag: Aufgrund der Bemerkung von esdd habe ich den erwähnten Abstand im Beispiel angepasst.

Zuletzt bearbeitet von Bartman am 31.03.2019, 18:39, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen

Moritz_F
Forum-Newbie
Forum-Newbie

Beiträge: 9
Anmeldedatum: 07.01.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2019, 17:55     Titel:
  Antworten mit Zitat      
Ach klasse!

Genau so - sehr sehr cool gemacht!
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2475
Anmeldedatum: 07.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2019, 17:57     Titel:
  Antworten mit Zitat      
Dass die Beschriftungen an den Strichen der Skala kleben, ist kein Wunder. Schließlich setzt Du für das gesamte tikzpicture sowohl inner sep als auch outer sep gleich Null. Entferne beide Einstellungen. Wenn das nicht genügt, kannst Du auch für inner sep einen größeren Wert als das voreingestellte 0.3333em wählen.

Ansonsten ist hier noch ein Alternativvorschlag für das Bild mit Füllung, der u.a. auf Antworten zu Fill of a thermometer beruht:

Code

\documentclass[dvipsnames]{standalone}
\usepackage{tikz}
\tikzset{
  thermometer/.style={insert path={
    (280.0313,169.3125) .. controls (263.9888,169.3125) and (250.6461,179.3446) ..
    (247.8125,192.5625) --
    (247.3438,563.7500) .. controls (235.7346,573.2243) and (228.3438,587.6282) ..
    (228.3438,603.7813) .. controls (228.3438,632.3161) and (251.4651,655.4688) ..
    (280.0000,655.4688) .. controls (308.5349,655.4688) and (331.6563,632.3161) ..
    (331.6563,603.7813) .. controls (331.6563,587.6282) and (324.2654,573.2243) ..
    (312.6563,563.7500) --
    (312.2500,192.5625) .. controls
    (309.4164,179.3446) and (296.0737,169.3125) .. (280.0313,169.3125) -- cycle
}}}

\begin{document}
\begin{tikzpicture}[y=0.5pt, x=0.5pt,yscale=-1,inner xsep=.5em]

\foreach
  [
    count=\i from -4,
    evaluate=\x as \y using (560+190)/2-\i*(560-190)/8
 
]
  \text in {sehr kalt, kalt, kühl, leicht kühl, neutral, leicht warm, warm, heiß, sehr heiß}
  {
    \draw (210,\y)--(190,\y) node[left](\i-links){\i
};
    \draw (350,\y)--(370,\y) node[right](\i-rechts){\text};
  }

\path[draw=black,line width=2.5pt]
  [thermometer]
  [path picture={
    \fill [blue
] (path picture bounding box.south west) rectangle (-4-rechts);
    \fill [red] (4-links) rectangle (path picture bounding box.north east);
    \clip (-4-links) rectangle (4-rechts);
    \fill [top color=red,bottom color=blue,middle color=yellow] (-4-links) rectangle (4-rechts);
 
}]
;

\path[text=OrangeRed]
  (0-links|-{0,140}) node {Index}
  (0-rechts|-{0,140}) node {Thermisches Empfinden}
;

\end{tikzpicture}
\end{document}


Ergebnis:



gl_thermometer.png
 Beschreibung:

Download
 Dateiname:  gl_thermometer.png
 Dateigröße:  16.09 KB
 Heruntergeladen:  104 mal


Zuletzt bearbeitet von esdd am 30.03.2019, 18:14, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1941
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 30.03.2019, 18:10     Titel:
  Antworten mit Zitat      
@esdd

Die Beschriftungen für den warmen und kalten Bereich sind in Deinem Beispiel vertauscht.
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2475
Anmeldedatum: 07.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2019, 18:17     Titel:
  Antworten mit Zitat      
@Bartman: Danke! Oben habe ich das jetzt korrigiert, d.h. ein Plus in ein Minus geändert.
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