Re: calcolare prodotto scalare con l’ausilio di pgfmath

#58491
Up
0
Down
::

Ciao a tutti,

quello che vorrei riuscire a fare è calcolare un prodotto scalare tra due vettori.
Di seguito il codice:
`
\documentclass{article}
\usepackage{tikz}

\def\vectorDot(#1,#2,#3)(#4,#5,#6)#7{%
\pgfmathparse{#1*#4+#2*#5+#3*#6}%
\expandafter\let\csname#7\endcsname=\pgfmathresult%
}

\begin{document}
\def\A{1,1,1}
\def\B{1,2,3}

\vectorDot(1,1,1)(1,1,1){dotAB} % funziona
%\vectorDot(\A)(\B){dotAB} % non funziona

\dotAB
\end{document}
`

come potete vedere il caso in cui io definisco il vettore A prima con il comando \def per poi inserirlo nel comando che compie il prodotto non funziona.

Immagino perché il comando \A venga è visto dal comando \vectorDot solamente come l’input #1 e non come #1,#2,#3.

Si può ovviare a questo?

Saluti

Michele

\A non è una lista di token della forma richiesta, lo è la sua espansione.
`\def\vectorDot(#1)(#2){\begingroup
\edef\x{\endgroup\noexpand\vectorDotI(#1)(#2)}\x}
\def\vectorDotI(#1,#2,#3)(#4,#5,#6)#7{%
\pgfmathparse{#1*#4+#2*#5+#3*#6}%
\expandafter\let\csname#7\endcsname\pgfmathresult
}`
Ciao
Enrico

Go to top