code: def on_resize(self, event):
      width, height = event.size
      self.size = event.size
      gloo.set_viewport(0, 0, width, height)
      self.aspect = width / float(height)
      self.projection = perspective(
          self.fovy, width / float(height), 1.0, self.zfar
      )
      self.program["u_projection"] = self.projection
  
imports: from PyQt5 import QtCore, QtWidgets
  import sys
  import numpy
  from vispy import app, gloo
  from vispy.util.transforms import perspective, translate, rotate
  from vispy.geometry import meshdata
  from vispy.geometry import generation
label_desc: Use image node_id 3 for calling the Canvas obj's underlying member method code with example usage: obj.on_resize(event) without return types