Dibujo de rectángulo incorrecto

Dibujo de rectángulo incorrecto

Probablemente no entiendo cómo dibujar rectángulos con TikZ. El siguiente código muestra un dibujo claro, pero incluso si \gson \wiguales, el archivo de salida es incorrecto.

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[czech]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}

\def \a {3}
\def \w {0.5}
\def \g {0.5}
\def \s14 {0.5}
\def \s34 {0.5}

\filldraw [blue] (0,0) rectangle (\a, \a);
\filldraw [white] (\w,\w) rectangle (\a - \w,\a - \w);
\filldraw [yellow] (0,\a/2 + \g/2) rectangle (\w,\g);
\end{tikzpicture}

\end{document}

ingrese la descripción de la imagen aquí

Tomé algunas notas sobre el dibujo de salida. El área amarilla no es deseada; la posición y el tamaño del rectángulo gxw se muestran claramente. ¿Puede usted ayudar?

Respuesta1

¿Quieres esto? Puedes usar +para decirle a TikZ que la segunda coordenada es relativa a la primera.

\documentclass[10pt,a4paper]{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}

\newcommand* \mylengthA {3}
\newcommand* \mylengthW {0.5}
\newcommand* \mylengthG {0.5}


\fill [blue] (0,0) rectangle (\mylengthA, \mylengthA);
\fill [white]
  (\mylengthW,\mylengthW) rectangle
  (\mylengthA - \mylengthW,\mylengthA - \mylengthW);
\fill [yellow]
  (0,\mylengthA/2 + \mylengthG/2) rectangle +(\mylengthW,-\mylengthG);
\end{tikzpicture}

\end{document}

ingrese la descripción de la imagen aquí

rectangleDibuja un rectángulo entre las dos coordenadas dadas. Sin +ellos se consideran absolutos y no relativos entre sí. Entonces \draw (1,1) rectangle (2,2);dibujaríamos un rectángulo entre esos dos puntos con bordes de 1 cm de longitud.

información relacionada