当前位置: 首页>>代码示例>>Python>>正文


Python transformation.Matrix方法代码示例

本文整理汇总了Python中kivy.graphics.transformation.Matrix方法的典型用法代码示例。如果您正苦于以下问题:Python transformation.Matrix方法的具体用法?Python transformation.Matrix怎么用?Python transformation.Matrix使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在kivy.graphics.transformation的用法示例。


在下文中一共展示了transformation.Matrix方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: clear

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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 
开发者ID:wolfmanjm,项目名称:kivy-smoothie-host,代码行数:26,代码来源:viewer.py

示例2: on_touch_down

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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) 
开发者ID:wolfmanjm,项目名称:kivy-smoothie-host,代码行数:28,代码来源:viewer.py

示例3: set_zoom_at

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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 
开发者ID:pythonindia,项目名称:PyCon-Mobile-App,代码行数:39,代码来源:view.py

示例4: scale_at

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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)) 
开发者ID:pythonindia,项目名称:PyCon-Mobile-App,代码行数:9,代码来源:view.py

示例5: moveToCenter

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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)) 
开发者ID:MaslowCNC,项目名称:GroundControl,代码行数:16,代码来源:simulationCanvas.py

示例6: setInitialZoom

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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) 
开发者ID:MaslowCNC,项目名称:GroundControl,代码行数:8,代码来源:simulationCanvas.py

示例7: zoomCanvas

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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) 
开发者ID:MaslowCNC,项目名称:GroundControl,代码行数:12,代码来源:simulationCanvas.py

示例8: centerCanvas

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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) 
开发者ID:MaslowCNC,项目名称:GroundControl,代码行数:16,代码来源:gcodeCanvas.py

示例9: on_bypass

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
def on_bypass(self, instance, bypass):
        if bypass:
            self.transform = Matrix() 
开发者ID:snuq,项目名称:Snu-Photo-Manager,代码行数:5,代码来源:generalelements.py

示例10: _set_rotation

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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)) 
开发者ID:BillBillBillBill,项目名称:Tickeys-linux,代码行数:7,代码来源:scatter.py

示例11: _set_scale

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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)) 
开发者ID:BillBillBillBill,项目名称:Tickeys-linux,代码行数:7,代码来源:scatter.py

示例12: _set_center

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
def _set_center(self, center):
        if center == self.center:
            return False
        t = Vector(*center) - self.center
        trans = Matrix().translate(t.x, t.y, 0)
        self.apply_transform(trans) 
开发者ID:BillBillBillBill,项目名称:Tickeys-linux,代码行数:8,代码来源:scatter.py

示例13: _set_pos

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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) 
开发者ID:BillBillBillBill,项目名称:Tickeys-linux,代码行数:9,代码来源:scatter.py

示例14: apply_transform

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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) 
开发者ID:BillBillBillBill,项目名称:Tickeys-linux,代码行数:33,代码来源:scatter.py

示例15: get_window_matrix

# 需要导入模块: from kivy.graphics import transformation [as 别名]
# 或者: from kivy.graphics.transformation import Matrix [as 别名]
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 
开发者ID:BillBillBillBill,项目名称:Tickeys-linux,代码行数:16,代码来源:widget.py


注:本文中的kivy.graphics.transformation.Matrix方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。