QML Поворот изображения - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь повернуть изображение, когда я показываю его в элементе управления изображением. В настоящее время изображение отображается так:

enter image description here

Я бы хотел повернуть его на 90 градусов вправо. Мой текущий код выглядит так: '

Image {
    id: imagePhoto
    anchors.fill: parent
    width: parent.width
    height: parent.height


    transform: Rotation{                       
        id: rotateImagePhoto
        angle: 0
        origin.x: 0
        origin.y: 0

    }
}

Итак, я попытался играть под углом:

transform: Rotation{                       
    id: rotateImagePhoto
    angle: 90
    origin.x: 700
    origin.y: 700

}

Отображается правильно:

enter image description here

Чего я не понимаю, так это того, почему я должен был поставить эти значения для х / у. Я посмотрел на следующий сайт , но я не понимаю.

1 Ответ

0 голосов
/ 17 мая 2018

Преобразования Scale и Rotation принимают точку, называемую transformOrigin, в качестве ориентира, в вашем случае это точка, относительно которой вращается изображение, поэтому вы, вероятно, устанавливаете центр изображения, если вы меняете положение вращения будет другим.

В вашем случае общее решение для любого размера:

transform: Rotation{
    id: rotateImagePhoto
    angle: 90
    origin.x: imagePhoto.width/2
    origin.y: imagePhoto.height/2
}

Или лучше, используя rotation.

Image {
    id: imagePhoto
    anchors.fill: parent
    width: parent.width
    height: parent.height
    transformOrigin: Item.Center
    rotation: 90
}

Эта точка является фиксированной точкой, то есть она будет оставаться неизменной до поворота, например, давайте установим точку в topLeft и повернем на 30 градусов:

transform: Rotation{
    id: rotateImagePhoto
    angle: 30
    origin.x: 0
    origin.y: 0
}

enter image description here

Обратите внимание, что точка topLeft не сместилась и является центром вращения.

В заключение, в случае вращения источником является центр вращения.

...