class_docstr: A reference frame in classical mechanics.
  
  ReferenceFrame is a class used to represent a reference frame in classical
  mechanics. It has a standard basis of three unit vectors in the frame's
  x, y, and z directions.
  
  It also can have a rotation relative to a parent frame; this rotation is
  defined by a direction cosine matrix relating this frame's basis vectors to
  the parent frame's basis vectors.  It can also have an angular velocity
  vector, defined in another frame.
docstr: Returns a dictionary which expresses the coordinate variables
  of this frame in terms of the variables of otherframe.
  
  If Vector.simp is True, returns a simplified version of the mapped
  values. Else, returns them without simplification.
  
  Simplification of the expressions may take time.
  
  Parameters
  ==========
  
  otherframe : ReferenceFrame
      The other frame to map the variables to
  
  Examples
  ========
  
  >>> from sympy.physics.vector import ReferenceFrame, dynamicsymbols
  >>> A = ReferenceFrame('A')
  >>> q = dynamicsymbols('q')
  >>> B = A.orientnew('B', 'Axis', [q, A.z])
  >>> A.variable_map(B)
  {A_x: B_x*cos(q(t)) - B_y*sin(q(t)), A_y: B_x*sin(q(t)) + B_y*cos(q(t)), A_z: B_z}
docstr_tok: ["Returns","a","dictionary","which","expresses","the","coordinate","variables","of","this","frame","in","terms","of","the","variables","of","otherframe",".","If","Vector.simp","is","True",",","returns","a","simplified","version","of","the","mapped","values",".","Else",",","returns","them","without","simplification",".","Simplification","of","the","expressions","may","take","time",".","Parameters","==========","otherframe",":","ReferenceFrame","The","other","frame","to","map","the","variables","to","Examples","========",">",">",">","from","sympy.physics.vector","import","ReferenceFrame",",","dynamicsymbols",">",">",">","A","=","ReferenceFrame","(","'","A","'",")",">",">",">","q","=","dynamicsymbols","(","'","q","'",")",">",">",">","B","=","A.orientnew","(","'","B","'",",","'Axis","'",",","[","q",",","A.z","]",")",">",">",">","A.variable_map","(","B",")","{","A_x",":","B_x","*","cos","(","q","(","t",")",")","-","B_y","*","sin","(","q","(","t",")",")",",","A_y",":","B_x","*","sin","(","q","(","t",")",")","+","B_y","*","cos","(","q","(","t",")",")",",","A_z",":","B_z","}"]
code: def variable_map(self, otherframe):
      """
      Returns a dictionary which expresses the coordinate variables
      of this frame in terms of the variables of otherframe.
  
      If Vector.simp is True, returns a simplified version of the mapped
      values. Else, returns them without simplification.
  
      Simplification of the expressions may take time.
  
      Parameters
      ==========
  
      otherframe : ReferenceFrame
          The other frame to map the variables to
  
      Examples
      ========
  
      >>> from sympy.physics.vector import ReferenceFrame, dynamicsymbols
      >>> A = ReferenceFrame('A')
      >>> q = dynamicsymbols('q')
      >>> B = A.orientnew('B', 'Axis', [q, A.z])
      >>> A.variable_map(B)
      {A_x: B_x*cos(q(t)) - B_y*sin(q(t)), A_y: B_x*sin(q(t)) + B_y*cos(q(t)), A_z: B_z}
  
      """
  
      _check_frame(otherframe)
      if (otherframe, Vector.simp) in self._var_dict:
          return self._var_dict[(otherframe, Vector.simp)]
      else:
          vars_matrix = self.dcm(otherframe) * Matrix(
              otherframe.varlist
          )
          mapping = {}
          for i, x in enumerate(self):
              if Vector.simp:
                  mapping[self.varlist[i]] = trigsimp(
                      vars_matrix[i], method="fu"
                  )
              else:
                  mapping[self.varlist[i]] = vars_matrix[i]
          self._var_dict[(otherframe, Vector.simp)] = mapping
          return mapping
  
imports: from sympy import diff, expand, sin, cos, sympify, eye, zeros, ImmutableMatrix, MatrixBase
  from sympy.core.symbol import Symbol
  from sympy.simplify.trigsimp import trigsimp
  from sympy.physics.vector.vector import Vector, _check_vector
  from sympy.utilities.misc import translate
  from warnings import warn
label_desc: Use image node_id 7 for calling the ReferenceFrame obj's underlying member method code with example usage: obj.variable_map(otherframe) and returns: self, mapping