ARKit Как нарисовать самолет из углов не из центра - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть вертикальная плоскость, скажем, стена. В стене я должен добавить еще одну плоскость из точки 1 в точку 2, где точка 1 и точка 2 являются SCNVector испытания на удар из стены.

Стеновой узел поворачивается на угол Эйлера Y с динамическим значением. чтобы нарисовать самолет на стене, я должен применить

 plane.eulerAngles = wall.eulerAngles

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

Но плоскость поворачивается, поэтому при изменении x значение y здесь работать не будет. Мне также нужно изменить значение Z в соответствии с вращением Y

Вопрос: Как рассчитать ширину / 2 и высоту / 2 в повернутой плоскости?

Как воспроизвести

1) Создать проект Xcode с приложением ARKit

2) в файл ship.scn добавить объект SCNPlane

3) в правой панели изменить угол Y на 30

4) Перемещайте плоскость КРАСНОЙ стрелкой, только обратите внимание, что при значении X также изменяется значение Z

enter image description here

после движения с красной стрелкой

enter image description here

1 Ответ

0 голосов
/ 03 ноября 2018

При использовании инспектора вы можете установить «Пространство редактирования» на «Мир» (вместо «Локальный»), а при использовании манипулятора (стрелки в области просмотра) у вас также есть возможность изменить пространство редактирования на «мир». "или" родительский ", чтобы ваши изменения не учитывали ротацию узла.

enter image description here enter image description here

...