Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. about PathAnimation
Qt 6.11 is out! See what's new in the release blog

about PathAnimation

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
5 Posts 2 Posters 1.3k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    Cheng shi hua
    wrote on last edited by
    #1

    PathAnimation just supprt one target

    how to Supports multiple targets?

    Or have other solution?

    1 Reply Last reply
    0
    • GrecKoG Offline
      GrecKoG Offline
      GrecKo
      Qt Champions 2018
      wrote on last edited by
      #2

      Can you tell us a bit more a bout what you are trying to achieve so we can help you more easily?

      C 1 Reply Last reply
      0
      • GrecKoG GrecKo

        Can you tell us a bit more a bout what you are trying to achieve so we can help you more easily?

        C Offline
        C Offline
        Cheng shi hua
        wrote on last edited by
        #3

        @GrecKo I want to realize the function similar to conveyor belt. I want to put an object on the conveyor belt, and the conveyor belt will transport the object according to its own path

        1 Reply Last reply
        0
        • GrecKoG Offline
          GrecKoG Offline
          GrecKo
          Qt Champions 2018
          wrote on last edited by
          #4

          For this I'd use a PathInterpolator for each object with a common Path.
          You would then animate the progress property of the PathInterpolator and bind x and y of your objects to their PathInterpolator x and y.

          C 1 Reply Last reply
          1
          • GrecKoG GrecKo

            For this I'd use a PathInterpolator for each object with a common Path.
            You would then animate the progress property of the PathInterpolator and bind x and y of your objects to their PathInterpolator x and y.

            C Offline
            C Offline
            Cheng shi hua
            wrote on last edited by
            #5

            @GrecKo

            /****************************************************************************
            **
            ** Copyright (C) 2017 The Qt Company Ltd.
            ** Contact: https://www.qt.io/licensing/
            **
            ** This file is part of the examples of the Qt Toolkit.
            **
            ** $QT_BEGIN_LICENSE:BSD$
            ** Commercial License Usage
            ** Licensees holding valid commercial Qt licenses may use this file in
            ** accordance with the commercial license agreement provided with the
            ** Software or, alternatively, in accordance with the terms contained in
            ** a written agreement between you and The Qt Company. For licensing terms
            ** and conditions see https://www.qt.io/terms-conditions. For further
            ** information use the contact form at https://www.qt.io/contact-us.
            **
            ** BSD License Usage
            ** Alternatively, you may use this file under the terms of the BSD license
            ** as follows:
            **
            ** "Redistribution and use in source and binary forms, with or without
            ** modification, are permitted provided that the following conditions are
            ** met:
            ** * Redistributions of source code must retain the above copyright
            ** notice, this list of conditions and the following disclaimer.
            ** * Redistributions in binary form must reproduce the above copyright
            ** notice, this list of conditions and the following disclaimer in
            ** the documentation and/or other materials provided with the
            ** distribution.
            ** * Neither the name of The Qt Company Ltd nor the names of its
            ** contributors may be used to endorse or promote products derived
            ** from this software without specific prior written permission.
            **
            **
            ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
            ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
            ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
            ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
            ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
            ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
            ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
            ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
            ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
            ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
            ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
            **
            ** $QT_END_LICENSE$
            **
            ****************************************************************************/

            import QtQuick 2.0

            Rectangle {
            id: window
            width: 320
            height: 480

            Canvas {
                id: canvas
                anchors.fill: parent
                antialiasing: true
            
                onPaint: {
                    var context = canvas.getContext("2d")
                    context.clearRect(0, 0, width, height)
                    context.strokeStyle = "black"
                    context.path = motionPath.path
                    context.stroke()
                }
            }
            
            //! [0]
            PathInterpolator {
                id: motionPath
            
                path: Path {
                    startX: 50; startY: 50
            
                    PathCubic {
                        x: window.width - 50
                        y: window.height - 50
            
                        control1X: x; control1Y: 50
                        control2X: 50; control2Y: y
                    }
            
                    onChanged: canvas.requestPaint()
                }
            
                SequentialAnimation on progress {
                    running: true
                    loops: -1
                    PauseAnimation { duration: 1000 }
                    NumberAnimation {
                        id: progressAnim
                        running: false
                        from: 0; to: 1
                        duration: 2000
                        easing.type: Easing.InQuad
                    }
                }
            }
            //! [0]
            
            Rectangle {
                id: box
            
                width: 50; height: 50
                border.width: 1
                antialiasing: true
            
                //bind our attributes to follow the path as progress changes
                x: motionPath.x
                y: motionPath.y
                rotation: motionPath.angle
                transform: Translate { x: -box.width/2; y: -box.height/2 }
            
                Text {
                    anchors.centerIn: parent
                    text: "Box"
                }
            }
            
            Rectangle {
                id: box1
            
                width: 50; height: 50
                border.width: 1
                antialiasing: true
            
                //bind our attributes to follow the path as progress changes
                x: box.x-5
                y: box.y-5
                rotation: box.rotation
                transform: Translate { x: -box.width/2; y: -box.height/2 }
            
                Text {
                    anchors.centerIn: parent
                    text: "Box1"
                }
            }
            

            }

            How can I make box1 follow the box
            help~

            1 Reply Last reply
            0

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved