Python kivy.graphics.transformation.Matrix() Examples
The following are 30
code examples of kivy.graphics.transformation.Matrix().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
kivy.graphics.transformation
, or try the search function
.
Example #1
Source File: viewer.py From kivy-smoothie-host with GNU General Public License v3.0 | 6 votes |
def clear(self): self.app.unbind(wpos=self.update_tool) if self.li: self.remove_widget(self.li) self.li = None if self.select_mode: self.stop_cursor(0, 0) self.select_mode = False self.ids.select_mode_but.state = 'normal' self.valid = False self.is_visible = False self.canv.clear() self.ids.surface.canvas.remove(self.canv) self.last_target_layer = 0 # reset scale and translation m = Matrix() m.identity() self.ids.surface.transform = m # not sure why we need to do this self.ids.surface.top = Window.height
Example #2
Source File: main.py From pi-scan with BSD 2-Clause "Simplified" License | 5 votes |
def zoomZero(self): try: zeroScale = self.odd.height / self.scatter.height oldScale = self.scatter.scale self.scatter.transform = Matrix() self.scatter.scale = zeroScale except Exception as e: handleCrash(e)
Example #3
Source File: __init__.py From Tickeys-linux with MIT License | 5 votes |
def get_window_matrix(self, x=0, y=0): m = Matrix() m.translate(x, y, 0) return m
Example #4
Source File: scatter.py From Tickeys-linux with MIT License | 5 votes |
def _set_rotation(self, rotation): angle_change = self.rotation - rotation r = Matrix().rotate(-radians(angle_change), 0, 0, 1) self.apply_transform(r, post_multiply=True, anchor=self.to_local(*self.center))
Example #5
Source File: scatter.py From Tickeys-linux with MIT License | 5 votes |
def _set_scale(self, scale): rescale = scale * 1.0 / self.scale self.apply_transform(Matrix().scale(rescale, rescale, rescale), post_multiply=True, anchor=self.to_local(*self.center))
Example #6
Source File: scatter.py From Tickeys-linux with MIT License | 5 votes |
def _set_pos(self, pos): _pos = self.bbox[0] if pos == _pos: return t = Vector(*pos) - _pos trans = Matrix().translate(t.x, t.y, 0) self.apply_transform(trans)
Example #7
Source File: scatter.py From Tickeys-linux with MIT License | 5 votes |
def apply_transform(self, trans, post_multiply=False, anchor=(0, 0)): ''' Transforms the scatter by applying the "trans" transformation matrix (on top of its current transformation state). The resultant matrix can be found in the :attr:`~Scatter.transform` property. :Parameters: `trans`: :class:`~kivy.graphics.transformation.Matrix`. Transformation matix to be applied to the scatter widget. `anchor`: tuple, defaults to (0, 0). The point to use as the origin of the transformation (uses local widget space). `post_multiply`: bool, defaults to False. If True, the transform matrix is post multiplied (as if applied before the current transform). Usage example:: from kivy.graphics.transformation import Matrix mat = Matrix().scale(3, 3, 3) scatter_instance.apply_transform(mat) ''' t = Matrix().translate(anchor[0], anchor[1], 0) t = t.multiply(trans) t = t.multiply(Matrix().translate(-anchor[0], -anchor[1], 0)) if post_multiply: self.transform = self.transform.multiply(t) else: self.transform = t.multiply(self.transform)
Example #8
Source File: widget.py From Tickeys-linux with MIT License | 5 votes |
def get_window_matrix(self, x=0, y=0): '''Calculate the transformation matrix to convert between window and widget coordinates. :Parameters: `x`: float, defaults to 0 Translates the matrix on the x axis. `y`: float, defaults to 0 Translates the matrix on the y axis. ''' m = Matrix() m.translate(self.x + x, self.y + y, 0) m = self._apply_transform(m) return m
Example #9
Source File: __init__.py From Tickeys-linux with MIT License | 5 votes |
def get_window_matrix(self, x=0, y=0): m = Matrix() m.translate(x, y, 0) return m
Example #10
Source File: widget.py From Tickeys-linux with MIT License | 5 votes |
def get_window_matrix(self, x=0, y=0): '''Calculate the transformation matrix to convert between window and widget coordinates. :Parameters: `x`: float, defaults to 0 Translates the matrix on the x axis. `y`: float, defaults to 0 Translates the matrix on the y axis. ''' m = Matrix() m.translate(self.x + x, self.y + y, 0) m = self._apply_transform(m) return m
Example #11
Source File: main.py From pi-scan with BSD 2-Clause "Simplified" License | 5 votes |
def moveUp(self): try: self.scatter.apply_transform(Matrix().translate(x=0,y=-100/self.scatter.scale,z=0)) except Exception as e: handleCrash(e)
Example #12
Source File: main.py From pi-scan with BSD 2-Clause "Simplified" License | 5 votes |
def moveDown(self): try: self.scatter.apply_transform(Matrix().translate(x=0,y=100/self.scatter.scale,z=0)) except Exception as e: handleCrash(e)
Example #13
Source File: main.py From pi-scan with BSD 2-Clause "Simplified" License | 5 votes |
def moveLeft(self): try: self.scatter.apply_transform(Matrix().translate(x=100/self.scatter.scale,y=0,z=0)) except Exception as e: handleCrash(e)
Example #14
Source File: main.py From pi-scan with BSD 2-Clause "Simplified" License | 5 votes |
def moveRight(self): try: self.scatter.apply_transform(Matrix().translate(x=-100/self.scatter.scale,y=0,z=0)) except Exception as e: handleCrash(e)
Example #15
Source File: view.py From pydelhi_mobile with GNU Affero General Public License v3.0 | 5 votes |
def set_zoom_at(self, zoom, x, y, scale=None): """Sets the zoom level, leaving the (x, y) at the exact same point in the view. """ zoom = clamp(zoom, self.map_source.get_min_zoom(), self.map_source.get_max_zoom()) if int(zoom) == int(self._zoom): if scale is None: return elif scale == self.scale: return scale = scale or 1. # first, rescale the scatter scatter = self._scatter scale = clamp(scale, scatter.scale_min, scatter.scale_max) rescale = scale * 1.0 / scatter.scale scatter.apply_transform(Matrix().scale(rescale, rescale, rescale), post_multiply=True, anchor=scatter.to_local(x, y)) # adjust position if the zoom changed c1 = self.map_source.get_col_count(self._zoom) c2 = self.map_source.get_col_count(zoom) if c1 != c2: f = float(c2) / float(c1) self.delta_x = scatter.x + self.delta_x * f self.delta_y = scatter.y + self.delta_y * f # back to 0 every time scatter.apply_transform(Matrix().translate( -scatter.x, -scatter.y, 0 ), post_multiply=True) # avoid triggering zoom changes. self._zoom = zoom self.zoom = self._zoom
Example #16
Source File: view.py From pydelhi_mobile with GNU Affero General Public License v3.0 | 5 votes |
def scale_at(self, scale, x, y): scatter = self._scatter scale = clamp(scale, scatter.scale_min, scatter.scale_max) rescale = scale * 1.0 / scatter.scale scatter.apply_transform(Matrix().scale(rescale, rescale, rescale), post_multiply=True, anchor=scatter.to_local(x, y))
Example #17
Source File: analysismap.py From RaceCapture_App with GNU General Public License v3.0 | 5 votes |
def on_center_map(self, *args): """ Restore the track map to the default position/zoom/rotation """ scatter = self.ids.scatter scatter.scale = 1 scatter.rotation = 0 scatter.transform = Matrix().translate(self.pos[0], self.pos[1], 0)
Example #18
Source File: view.py From garden.mapview with MIT License | 5 votes |
def set_zoom_at(self, zoom, x, y, scale=None): """Sets the zoom level, leaving the (x, y) at the exact same point in the view. """ zoom = clamp(zoom, self.map_source.get_min_zoom(), self.map_source.get_max_zoom()) if int(zoom) == int(self._zoom): if scale is None: return elif scale == self.scale: return scale = scale or 1. # first, rescale the scatter scatter = self._scatter scale = clamp(scale, scatter.scale_min, scatter.scale_max) rescale = scale * 1.0 / scatter.scale scatter.apply_transform(Matrix().scale(rescale, rescale, rescale), post_multiply=True, anchor=scatter.to_local(x, y)) # adjust position if the zoom changed c1 = self.map_source.get_col_count(self._zoom) c2 = self.map_source.get_col_count(zoom) if c1 != c2: f = float(c2) / float(c1) self.delta_x = scatter.x + self.delta_x * f self.delta_y = scatter.y + self.delta_y * f # back to 0 every time scatter.apply_transform(Matrix().translate( -scatter.x, -scatter.y, 0 ), post_multiply=True) # avoid triggering zoom changes. self._zoom = zoom self.zoom = self._zoom
Example #19
Source File: viewer.py From kivy-smoothie-host with GNU General Public License v3.0 | 5 votes |
def on_touch_down(self, touch): #print(self.ids.surface.bbox) if self.ids.view_window.collide_point(touch.x, touch.y): # if within the scatter window if self.select_mode: touch.grab(self) return True elif touch.is_mouse_scrolling: # Allow mouse scroll wheel to zoom in/out if touch.button == 'scrolldown': # zoom in if self.ids.surface.scale < 100: rescale = 1.1 self.ids.surface.apply_transform(Matrix().scale(rescale, rescale, rescale), post_multiply=True, anchor=self.ids.surface.to_widget(*touch.pos)) elif touch.button == 'scrollup': # zoom out if self.ids.surface.scale > 0.01: rescale = 0.8 self.ids.surface.apply_transform(Matrix().scale(rescale, rescale, rescale), post_multiply=True, anchor=self.ids.surface.to_widget(*touch.pos)) self.moved(None, touch) return True return super(GcodeViewerScreen, self).on_touch_down(touch)
Example #20
Source File: view.py From PyCon-Mobile-App with GNU General Public License v3.0 | 5 votes |
def set_zoom_at(self, zoom, x, y, scale=None): """Sets the zoom level, leaving the (x, y) at the exact same point in the view. """ zoom = clamp(zoom, self.map_source.get_min_zoom(), self.map_source.get_max_zoom()) if int(zoom) == int(self._zoom): if scale is None: return elif scale == self.scale: return scale = scale or 1. # first, rescale the scatter scatter = self._scatter scale = clamp(scale, scatter.scale_min, scatter.scale_max) rescale = scale * 1.0 / scatter.scale scatter.apply_transform(Matrix().scale(rescale, rescale, rescale), post_multiply=True, anchor=scatter.to_local(x, y)) # adjust position if the zoom changed c1 = self.map_source.get_col_count(self._zoom) c2 = self.map_source.get_col_count(zoom) if c1 != c2: f = float(c2) / float(c1) self.delta_x = scatter.x + self.delta_x * f self.delta_y = scatter.y + self.delta_y * f # back to 0 every time scatter.apply_transform(Matrix().translate( -scatter.x, -scatter.y, 0 ), post_multiply=True) # avoid triggering zoom changes. self._zoom = zoom self.zoom = self._zoom
Example #21
Source File: view.py From PyCon-Mobile-App with GNU General Public License v3.0 | 5 votes |
def scale_at(self, scale, x, y): scatter = self._scatter scale = clamp(scale, scatter.scale_min, scatter.scale_max) rescale = scale * 1.0 / scatter.scale scatter.apply_transform(Matrix().scale(rescale, rescale, rescale), post_multiply=True, anchor=scatter.to_local(x, y))
Example #22
Source File: simulationCanvas.py From GroundControl with GNU General Public License v3.0 | 5 votes |
def moveToCenter(self, *args): #This moves the simulation onto the screen, I would love if it were centered #but for now it doesn't adapt to screen size (Window.width, Window.height) moveVertical = self.bedHeight/1.4 moveHorizontal = self.bedWidth/1.4 mat = Matrix().translate(moveHorizontal, moveVertical, 0) self.scatterInstance.apply_transform(mat) #scale it down to fit on the screen self.scatterInstance.apply_transform(Matrix().scale(.3, .3, 1))
Example #23
Source File: simulationCanvas.py From GroundControl with GNU General Public License v3.0 | 5 votes |
def setInitialZoom(self): mat = Matrix().scale(.4, .4, 1) self.scatterInstance.apply_transform(mat, (0,0)) mat = Matrix().translate(200, 100, 0) self.scatterInstance.apply_transform(mat)
Example #24
Source File: simulationCanvas.py From GroundControl with GNU General Public License v3.0 | 5 votes |
def zoomCanvas(self, touch): if touch.is_mouse_scrolling: scaleFactor = .1 if touch.button == 'scrollup': mat = Matrix().scale(1-scaleFactor, 1-scaleFactor, 1) self.scatterInstance.apply_transform(mat, anchor = touch.pos) elif touch.button == 'scrolldown': mat = Matrix().scale(1+scaleFactor, 1+scaleFactor, 1) self.scatterInstance.apply_transform(mat, anchor = touch.pos)
Example #25
Source File: gcodeCanvas.py From GroundControl with GNU General Public License v3.0 | 5 votes |
def centerCanvas(self, *args): ''' Return the canvas to the center of the screen. ''' mat = Matrix().translate(Window.width/2, Window.height/2, 0) self.scatterInstance.transform = mat anchor = (0,0) scale = self.data.config.get('Ground Control Settings', 'viewScale') mat = Matrix().scale(dp(scale), dp(scale), 1) self.scatterInstance.apply_transform(mat, anchor)
Example #26
Source File: scatter.py From Tickeys-linux with MIT License | 5 votes |
def apply_transform(self, trans, post_multiply=False, anchor=(0, 0)): ''' Transforms the scatter by applying the "trans" transformation matrix (on top of its current transformation state). The resultant matrix can be found in the :attr:`~Scatter.transform` property. :Parameters: `trans`: :class:`~kivy.graphics.transformation.Matrix`. Transformation matix to be applied to the scatter widget. `anchor`: tuple, defaults to (0, 0). The point to use as the origin of the transformation (uses local widget space). `post_multiply`: bool, defaults to False. If True, the transform matrix is post multiplied (as if applied before the current transform). Usage example:: from kivy.graphics.transformation import Matrix mat = Matrix().scale(3, 3, 3) scatter_instance.apply_transform(mat) ''' t = Matrix().translate(anchor[0], anchor[1], 0) t = t.multiply(trans) t = t.multiply(Matrix().translate(-anchor[0], -anchor[1], 0)) if post_multiply: self.transform = self.transform.multiply(t) else: self.transform = t.multiply(self.transform)
Example #27
Source File: view.py From garden.mapview with MIT License | 5 votes |
def scale_at(self, scale, x, y): scatter = self._scatter scale = clamp(scale, scatter.scale_min, scatter.scale_max) rescale = scale * 1.0 / scatter.scale scatter.apply_transform(Matrix().scale(rescale, rescale, rescale), post_multiply=True, anchor=scatter.to_local(x, y))
Example #28
Source File: generalelements.py From Snu-Photo-Manager with GNU Lesser General Public License v3.0 | 5 votes |
def on_bypass(self, instance, bypass): if bypass: self.transform = Matrix()
Example #29
Source File: scatter.py From Tickeys-linux with MIT License | 5 votes |
def _set_rotation(self, rotation): angle_change = self.rotation - rotation r = Matrix().rotate(-radians(angle_change), 0, 0, 1) self.apply_transform(r, post_multiply=True, anchor=self.to_local(*self.center))
Example #30
Source File: scatter.py From Tickeys-linux with MIT License | 5 votes |
def _set_scale(self, scale): rescale = scale * 1.0 / self.scale self.apply_transform(Matrix().scale(rescale, rescale, rescale), post_multiply=True, anchor=self.to_local(*self.center))