Как масштабировать QMesh вокруг источника с помощью QML - PullRequest
1 голос
/ 11 октября 2019

Я использую QML для отображения файла STL. Я хочу внести изменения в файл и отобразить его в сцене (перевод, вращение и масштабирование), я сделал первые два, но для масштабирования я хочу масштабировать вокруг начала координат (x = 0, y = 0, z = 0). Как я могу продолжить?

Оригинальная сетка Original Size Что я хочу сделать: What i want

Ответы [ 2 ]

2 голосов
/ 16 октября 2019

Вы хотите масштабировать вокруг начала координат (x = 0, y = 0, z = 0) с масштабным коэффициентом, который отличается для y?

, вы можете сделать это следующим образом:

Transform {
     ...
    scale3D:  Qt.vector3d(1, 0.5, 1)
}

РЕДАКТИРОВАТЬ: если источник вашего файла STL не совпадает с вашей системой координат: в этом случае переведите ваш объект в начало вашей системы координат, выполните масштабирование и затем переведите егоназад, как я предложил в моем первом ответе. Чтобы получить необходимый объем перевода, вы можете запросить значения ограничения, minExtent и maxExtent

2 голосов
/ 14 октября 2019

Если вы хотите преобразовать объекты, вам нужно использовать порядок вращения-масштабирования-преобразования (короче: RST )

Если вы хотите преобразовать системы координат, вы делаете этонаоборот: TSR .

Порядок действительно имеет значение.

Если вы загружаете stl-файл, а источник уже тот, который вы хотите, то вы можете вращать объект,масштабировать, а затем перевести его. Если источник не тот, который вы хотите, вам нужно будет преобразовать его в «начальную позицию», которую вы хотите. Если вы генерируете stl-файл, вы можете использовать программное обеспечение, которое произвело этот stl-файл, чтобы поместить его в правильное «начальное положение».

...