Solución:
Has usado bend left
/bend right
anteriormente en el dibujo, utilícelo de nuevo y funcionará bien. Por ejemplo draw[fill=white] (8.5,0) to[bend right] (4.5,0);
Esta imagen muestra la salida de su código original, con algunos cambios de estilo. La flecha azul está hecha con bend left
, la línea roja discontinua con parabola bend
. No son equivalentes al 100%, pero están muy cerca.
Hablando de las puntas de las flechas, ¿quieres agrandarlas (apenas son visibles)? ¿O eliminarlos por completo?
Algunos otros comentarios:
- los
hyperref
En general, el paquete debería cargarse tarde, consulte ¿Qué paquetes deberían cargarse después de Hyperref en lugar de antes? - Como mencioné en un comentario, debe colocar el
label
después de lacaption
, o las referencias cruzadas no funcionarán, consulte ¿Por qué tiene que aparecer la etiqueta de un entorno después del título? - Tu
scope
el medio ambiente realmente no hace nada útil. - yo añadí
centering
antes debegin{tikzpicture}
- En el bloque que comienza con
%Draw Pin-Cushion Distortion
, tiene un nodo vacío en cada línea, que no es necesario. - Cuando dibuja las líneas entre las esquinas, también tiene
fill=lime
. ¿Tenía la intención de llenar alguna región conlime
¿O es solo algo que se ha olvidado de eliminar?
Dicho esto, aquí hay un ejemplo completo. El uso de coordenadas con nombre puede ser útil en algún momento, reescribí el código para mostrar un método que lo usa. Por supuesto, no es necesario que lo uses.
documentclass{article}
usepackage[usenames,dvipsnames,x11names]{xcolor}
usepackage{tikz}
usepackage{hyperref}
begin{document}
begin{figure}[ht]
centering
begin{tikzpicture} %detector on right (Pin-Cushion distorted)
begin{scope}[every label/.style={font=footnotesize}]
% coordinates at outer corners
coordinate [label=left:$A_1$] (A1) at (4,4.5);
coordinate [label=right:$A_2$] (A2) at (9,4.5);
coordinate [label=right:$A_3$] (A3) at (9,-0.5);
coordinate [label=left:$A_4$] (A4) at (4,-0.5);
end{scope}
% inner corners, relative to outer corners
path (A1) ++(0.5,-0.5) coordinate (B1);
path (A2) ++(-0.5,-0.5) coordinate (B2);
path (A3) ++(-0.5,0.5) coordinate (B3);
path (A4) ++(0.5,0.5) coordinate (B4);
%Grid and outer layers of detector
draw[black, very thick] (A4) rectangle (A2);
draw[black, very thick] (B4) rectangle (B2);
draw[step=5mm,black] (B4) grid (B2);
%Anode wiring
foreach i in {1,...,4}
draw (Ai) -- (Bi);
% draw and fill bendy lines
draw[bend left,fill=white] (B4) to (B3);
draw[bend right,fill=white] (B4) to (B1);
draw[bend left,fill=white] (B3) to (B2);
draw[bend left,fill=white] (B2) to (B1);
end{tikzpicture}
caption{An interesting diagram...}
label{PCDistort}
end{figure}
end{document}
Es posible dibujar la curva de la parábola horizontalmente y luego rotarla. He nombrado las coordenadas para facilitarme las cosas:
documentclass{article}
usepackage{hyperref}
usepackage[usenames,dvipsnames,x11names]{xcolor}
usepackage{tikz}
usetikzlibrary{positioning}
usetikzlibrary{arrows,snakes,shapes}
begin{document}
begin{tikzpicture}
% Coordinates
coordinate (sw) at (4.5, 0);
coordinate (ne) at ([shift=(sw)] 4, 4);
coordinate (nw) at (sw |- ne);
coordinate (se) at (sw -| ne);
coordinate[label=left:$A_1$] (A1) at ([shift=(nw)] -.5, .5);
coordinate[label=right:$A_2$] (A2) at ([shift=(ne)] .5, .5);
coordinate[label=right:$A_3$] (A3) at ([shift=(se)] .5, -.5);
coordinate[label=left:$A_4$] (A4) at ([shift=(sw)] -.5, -.5);
% Grid and outer layers of detector
draw[black, very thick] (A1) rectangle (A3);
draw[black, very thick] (sw) rectangle (ne);
draw[step=5mm,black] (sw) grid (ne);
% Anode wiring
draw (A1) -- (nw);
draw (A2) -- (ne);
draw (A3) -- (se);
draw (A4) -- (sw);
%Colour in distorted areas
draw[fill=white] (sw) parabola bend +(2, .6) (se) -- cycle;
draw[fill=white] (nw) parabola bend +(2, -.6) (ne) -- cycle;
begin{scope}[shift=(sw), rotate=90]
draw[fill=white] (0,0) parabola bend +(2, -.6) ++(4, 0) -- cycle;
end{scope}
begin{scope}[shift=(se), rotate=90]
draw[fill=white] (0,0) parabola bend +(2, .6) ++(4, 0) -- cycle;
end{scope}
end{tikzpicture}
end{document}