C

Qt Quick Ultralite shapes Example

// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial

import QtQuick 2.15
import QtQuick.Shapes 1.0

ShapesEntry {
    id: root
    text: "Arc rotation"

    Rectangle {
        color: "lightGray"
        anchors.top: parent.top
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.margins: root.contentMargins
        width: root.contentHeight
        height: root.contentHeight

        Repeater {
            model: 2
            Shape {
                width: 200
                height: 200
                anchors.centerIn: parent

                scale: root.shapeScale

                ShapePath {
                    fillColor: "transparent"
                    strokeColor: index === 1 ? "red" : "blue"
                    strokeWidth: 4

                    startX: 50; startY: 100
                    PathArc {
                        x: 150; y: 100
                        radiusX: 50; radiusY: 20
                        xAxisRotation: index === 1 ? 0 : 45
                    }
                }
            }
        }

        Repeater {
            model: 2

            Shape {
                width: 200
                height: 200
                anchors.centerIn: parent

                scale: root.shapeScale

                ShapePath {
                    fillColor: "transparent"
                    strokeColor: index === 1 ? "red" : "blue"

                    startX: 50; startY: 100
                    PathArc {
                        x: 150; y: 100
                        radiusX: 50; radiusY: 20
                        xAxisRotation: index === 1 ? 0 : 45
                        direction: PathArc.Counterclockwise
                    }
                }
            }
        }

        Column {
            anchors.top: parent.top
            anchors.right: parent.right
            anchors.margins: 2
            Text {
                text: "0 degrees"
                font.pixelSize: 10
                color: "red"
                anchors.right: parent.right
            }
            Text {
                text: "45 degrees"
                font.pixelSize: 10
                color: "blue"
                anchors.right: parent.right
            }
        }
    }
}