von ich meine ja nur » Fr 10. Feb 2023, 09:12
Die Stäbchenbreiten, also die vertikalen Linien, sind bis auf den Steg links alle gleich. Der Steg links wird mit
\draw[line width=1.5] (1,1) -- (1,6); extra dick gezeichnet.
Die Bundbreite, also der Abstand der vertikalen Linien, nimmt hingegen ab, weil
\x bei jedem Durchlauf der Schleife per Faktor verringert wird. Bei äquidistanten Bünden kann man sich das sparen und stattdessen die Position direkt aus `\fret` bestimmten:
\documentclass{article}
% Language setting
% Replace `english' with e.g. `spanish' to change the document language
\usepackage[english]{babel}
% Set page size and margins
% Replace `letterpaper' with `a4paper' for UK/EU standard size
\usepackage[letterpaper,top=2cm,bottom=2cm,left=3cm,right=3cm,marginparwidth=1.75cm]{geometry}
% Useful packages
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorlinks=true, allcolors=blue]{hyperref}
% GUITAR SPECIFI MODULES
\usepackage{tikz}
\usetikzlibrary{calc,arrows}
\title{Charts}
\author{Byxx}
\begin{document}
\maketitle
\section{Introduction}
\begin{tikzpicture}[
ynode/.style={draw=red!50,circle,fill=red!50,scale=.35,inner sep=1pt,minimum size=1.7em}]
%%%% Draw the base and set coordinates %%%%
\begin{scope}[xscale=-12,yscale=.5,line width=.5]
%% Left line
\draw[line width=1.5] (1,1) -- (1,6);
\foreach \fret in {1,...,24}{
%% Set coordinate for each string
\foreach \str in {1,...,6}{
\coordinate (\str-\fret) at (1-\fret/24+1/48,\str);
}
%% Set coordinate for the text above
\coordinate (Top-\fret) at (1-\fret/24+1/48,7);
%% Draw the fret
\draw (1-\fret/24,1) -- (1-\fret/24,6);
}
%% Draw each string
\foreach \str in {1,...,6}{
\draw (1,\str) -- (0,\str);
\coordinate (start\str) at (1,\str);
}
\end{scope}
%% Draw the mark on the guitare
\foreach \f in {3,5,7,9,15,17}{
\draw[black!20,fill=black!10] ($(3-\f)!.5!(4-\f)$) circle (.08);
}
\draw[opacity=.20,fill,fill opacity=.10] (2-12) circle (.08) (5-12) circle (.08);
\end{tikzpicture}
\end{document}
Genau genommen müsste man sich jetzt auch nicht die Koordinaten für die Mitte der Bünde merken, sondern könnte diese ebenfalls direkt aus
\f bestimmen. Ich habe das aber einmal drin gelassen, weil man ja eventuell auch für andere Dinge wie Fingerpositionen die Stringposition haben will, statt sie jedes Mal neu zu berechnen. Ich empfehle unbedingt, die Berechnungen nachzuvollziehen und dazu ggf. auch die
TikZ-Anleitung heranzuziehen.
Die Stäbchenbreiten, also die vertikalen Linien, sind bis auf den Steg links alle gleich. Der Steg links wird mit [tt]\draw[line width=1.5] (1,1) -- (1,6);[/tt] extra dick gezeichnet.
Die Bundbreite, also der Abstand der vertikalen Linien, nimmt hingegen ab, weil [tt]\x[/tt] bei jedem Durchlauf der Schleife per Faktor verringert wird. Bei äquidistanten Bünden kann man sich das sparen und stattdessen die Position direkt aus `\fret` bestimmten:
[code]
\documentclass{article}
% Language setting
% Replace `english' with e.g. `spanish' to change the document language
\usepackage[english]{babel}
% Set page size and margins
% Replace `letterpaper' with `a4paper' for UK/EU standard size
\usepackage[letterpaper,top=2cm,bottom=2cm,left=3cm,right=3cm,marginparwidth=1.75cm]{geometry}
% Useful packages
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorlinks=true, allcolors=blue]{hyperref}
% GUITAR SPECIFI MODULES
\usepackage{tikz}
\usetikzlibrary{calc,arrows}
\title{Charts}
\author{Byxx}
\begin{document}
\maketitle
\section{Introduction}
\begin{tikzpicture}[
ynode/.style={draw=red!50,circle,fill=red!50,scale=.35,inner sep=1pt,minimum size=1.7em}]
%%%% Draw the base and set coordinates %%%%
\begin{scope}[xscale=-12,yscale=.5,line width=.5]
%% Left line
\draw[line width=1.5] (1,1) -- (1,6);
\foreach \fret in {1,...,24}{
%% Set coordinate for each string
\foreach \str in {1,...,6}{
\coordinate (\str-\fret) at (1-\fret/24+1/48,\str);
}
%% Set coordinate for the text above
\coordinate (Top-\fret) at (1-\fret/24+1/48,7);
%% Draw the fret
\draw (1-\fret/24,1) -- (1-\fret/24,6);
}
%% Draw each string
\foreach \str in {1,...,6}{
\draw (1,\str) -- (0,\str);
\coordinate (start\str) at (1,\str);
}
\end{scope}
%% Draw the mark on the guitare
\foreach \f in {3,5,7,9,15,17}{
\draw[black!20,fill=black!10] ($(3-\f)!.5!(4-\f)$) circle (.08);
}
\draw[opacity=.20,fill,fill opacity=.10] (2-12) circle (.08) (5-12) circle (.08);
\end{tikzpicture}
\end{document}
[/code]
Genau genommen müsste man sich jetzt auch nicht die Koordinaten für die Mitte der Bünde merken, sondern könnte diese ebenfalls direkt aus [tt]\f[/tt] bestimmen. Ich habe das aber einmal drin gelassen, weil man ja eventuell auch für andere Dinge wie Fingerpositionen die Stringposition haben will, statt sie jedes Mal neu zu berechnen. Ich empfehle unbedingt, die Berechnungen nachzuvollziehen und dazu ggf. auch die [doc]TikZ[/doc]-Anleitung heranzuziehen.