\nodexn y saveNodeCoors no juegan bien entre sí

\nodexn y saveNodeCoors no juegan bien entre sí

Esta pregunta surgió al intentar responder una pregunta diferente publicada anteriormente por @StiffJokes (también conocido como usuario: 19356) pero ahora eliminada.

Cada uno de los siguientes MWE produce resultados diferentes de pspictureuna manera que considero completamente contraintuitiva. Los dos primeros ejemplos difieren sólo en cómo se ha configurado borderla clase. standaloneEl tercer ejemplo utiliza la articleclase.

MWE #1:

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-node}
%% using pgffor just to see what happens at different values
\usepackage{pgffor}
\begin{document}
\begin{pspicture}[showgrid](-1,-1)(3,3)
    \psset{saveNodeCoors=true}
    \pnode (0,0){A}
    \pnode (2,3){B}
    \foreach \myp in {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.00}
    {
      \pgfmathparse{1-\myp}
      \edef\myq{\pgfmathresult}
      \nodexn{\myp(A)+\myq(B)}{V}
      \qdisk(V){2pt}
      \pnode(!  N-V.x N-V.y ){D}
      \psline(A)(D)
    }
\end{pspicture}
\end{document}

Resultando en

ingrese la descripción de la imagen aquí

MWE #2:

\documentclass[pstricks,border=1in]{standalone}
\usepackage{pst-node}
%% using pgffor just to see what happens at different values
\usepackage{pgffor}
\begin{document}
\begin{pspicture}[showgrid](-1,-1)(3,3)
    \psset{saveNodeCoors=true}
    \pnode (0,0){A}
    \pnode (2,3){B}
    \foreach \myp in {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.00}
    {
      \pgfmathparse{1-\myp}
      \edef\myq{\pgfmathresult}
      \nodexn{\myp(A)+\myq(B)}{V}
      \qdisk(V){2pt}
      \pnode(!  N-V.x N-V.y ){D}
      \psline(A)(D)
    }
\end{pspicture}
\end{document}

Resultando en:

ingrese la descripción de la imagen aquí

MWE #3:

\documentclass{article}
\usepackage{pstricks,pst-node}
%% using pgffor just to see what happens at different values
\usepackage{pgffor}
\begin{document}
\begin{pspicture}[showgrid](-1,-1)(3,3)
    \psset{saveNodeCoors=true}
    \pnode (0,0){A}
    \pnode (2,3){B}
    \foreach \myp in {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.00}
    {
      \pgfmathparse{1-\myp}
      \edef\myq{\pgfmathresult}
      \nodexn{\myp(A)+\myq(B)}{V}
      \qdisk(V){2pt}
      \pnode(!  N-V.x N-V.y ){D}
      \psline(A)(D)
    }
\end{pspicture}
\end{document}

Resultando en:

ingrese la descripción de la imagen aquí

¿Alguien puede explicar qué está pasando aquí? ¿Por qué las diferencias? En un nivel, las coordenadas Vson correctas ya que los puntos se trazan donde pertenecen. Pero tan pronto como intentas utilizar ! N-V.x N-V.ypara tomar las coordenadas del centro, las cosas se vuelven locas.

Al cambiar las coordenadas de los puntos A, Blas nuevas coordenadas de Dpueden cambiar drásticamente:

MWE #4

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-node}
%% using pgffor just to see what happens at different values
\usepackage{pgffor}
\begin{document}
\begin{pspicture}[showgrid](-1,-1)(3,3)
    \psset{saveNodeCoors=true}
    \pnode (0,0){A}
    \pnode (2,0){B}
    \foreach \myp in {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.00}
    {
      \pgfmathparse{1-\myp}
      \edef\myq{\pgfmathresult}
      \nodexn{\myp(A)+\myq(B)}{V}
      \qdisk(V){2pt}
      \pnode(!  N-V.x N-V.y ){D}
      \psline(A)(D)
    }
\end{pspicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta1

\nodexnutiliza nodos auxiliares internos. Y cuando los nodos se establecen por nodos, obtendrás coordenadas relativas. Dependiendo de la expresión, \nodexnsolo funciona con \psGetNodeCenter{Node}. Una expresión "simple" es como \nodexn{1,1}{A}(sin ()), entonces los valores de los nodos son los mismos.

Y, por cierto: escribir este tipo de preguntas en la lista de correo de PSTricks tiene más sentido.

Respuesta2

Creo firmemente que por inspección \nodexnno se respeta la existencia de saveNodeCoorsla variable N-<node_name>.xy N-<node_name>.yse deja sin inicializar.

El siguiente código crea 5 pspicturepero idénticos N-<node_name>.xy N-<node_name>.yproduce valores diferentes cada uno.

\documentclass[preview,border=1cm]{standalone}
\usepackage{pst-tools}
\usepackage{pst-node}
\psset{saveNodeCoors}


\begin{document}
\psLoop{5}{%
\begin{pspicture}(3,3)
    \pnode(1,1){A}
    \rput(0,2){\psPrintValue{N-A.x}}
    \rput(0,1){\psPrintValue{N-A.y}}
    %
    \nodexn{(1,1)}{B}
    \rput(2,2){\psPrintValue{N-B.x}}
    \rput(2,1){\psPrintValue{N-B.y}}
\end{pspicture}
\qquad}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada