PDA

Просмотр полной версии : [Вопрос] AttachObjectToObject



Angeeel
08.01.2018, 13:55
Всем привет, у меня вопрос


(objectid, attachtoid, Float:OffsetX, Float:OffsetY, Float:OffsetZ, Float:RotX, Float:RotY, Float:RotZ, SyncRotation = 1)

Как расчитывать Float:RotX, Float:RotY, Float:RotZ относительно главного объекта?

wAx
08.01.2018, 13:57
Всем привет, у меня вопрос


(objectid, attachtoid, Float:OffsetX, Float:OffsetY, Float:OffsetZ, Float:RotX, Float:RotY, Float:RotZ, SyncRotation = 1)

Как расчитывать Float:RotX, Float:RotY, Float:RotZ относительно главного объекта?

Объект вокруг своей оси вращается, а не вокруг главного объекта.

Angeeel
08.01.2018, 14:08
Тоесть мы ротацию должны выставлять как в объекте к которому мы должны его прикрепить или как?

m1n1vv
08.01.2018, 14:20
Нет. У приатаченного объекта ротация независимая от главного.

Angeeel
08.01.2018, 16:12
Вот например



new globject, object;
globject = CreateObject(5259, 3729.401855, -1053.377807, 14.139111, -0.000045, 0.000121, -34.299858, 300.00);
object = CreateObject(5259, 3689.801757, -1103.166015, 14.139111, -0.000045, 0.000121, -34.299858, 300.00);

3689.801757 - 3729.401855 = −39.600098
-1103.166015 - (-1053.377807) = −49.788208
14.139111 - 14.139111 = 0

AttachObjectToObject(object, globject, −39.600098,−49.788208,0.0,-0.000045,0.000121,-34.299858,1);

А ротацию тогда такой и оставляем?

wAx
08.01.2018, 16:26
Да, ротация прикрепляемого объекта осуществляется по его оси, а не по оси главного, повторюсь еще раз.

Angeeel
08.01.2018, 16:55
Да, ротация прикрепляемого объекта осуществляется по его оси, а не по оси главного, повторюсь еще раз.
Не работает


glkub = CreateObject(5259, 1236.181518, -1728.179199, 14.122141, 0.000000, 32.999992, -58.299983, 300.00);
kub[0] = CreateObject(5259, 1229.187011, -1720.275756, 14.110514, 0.000000, 0.000000, 0.000000, 300.00);
kub[1] = CreateObject(5259, 1229.183837, -1720.270141, 21.074384, 0.000000, 0.000000, -44.799961, 300.00);
AttachObjectToObject(kub[0], glkub, -6.994507, 7.903443, 0.011627, 0.000000, 0.000000, 0.000000,1);
AttachObjectToObject(kub[1], glkub, -6.997681, 7.909058, 6.952243, 0.000000, 0.000000, -44.799961,1);



https://s8.hostingkartinok.com/uploads/thumbs/2018/01/4ed1d2b871437e56313feea280c5b237.png (https://hostingkartinok.com/show-image.php?id=4ed1d2b871437e56313feea280c5b237)
https://s8.hostingkartinok.com/uploads/thumbs/2018/01/69d198ac2e8298ec1f540806e564dfc9.png (https://hostingkartinok.com/show-image.php?id=69d198ac2e8298ec1f540806e564dfc9)

Работает только в таком виде



glkub = CreateObject(5259, 1241.847900, -1720.289794, 14.122141, 0.000000, 0.000000, 0.000000, 300.00);
kub[0] = CreateObject(5259, 1229.187011, -1720.275756, 14.110514, 0.000000, 0.000000, 0.000000, 300.00);
kub[1] = CreateObject(5259, 1229.183837, -1720.270141, 21.074384, 0.000000, 0.000000, 0.000000, 300.00);
AttachObjectToObject(kub[0], glkub, -12.660889, 0.014038, -0.011627, 0.000000, 0.000000, 0.000000,1);
AttachObjectToObject(kub[1], glkub, -12.664063, 0.019653, 6.952243, 0.000000, 0.000000, 0.000000,1);

Angeeel
09.01.2018, 15:57
Почему обьекты следует за гланым обьектом, но не по тем координатам которые я задал ему?
Как должно быть
https://s8.hostingkartinok.com/uploads/thumbs/2018/01/4ed1d2b871437e56313feea280c5b237.png (https://hostingkartinok.com/show-image.php?id=4ed1d2b871437e56313feea280c5b237)
Что получилось
https://s8.hostingkartinok.com/uploads/thumbs/2018/01/69d198ac2e8298ec1f540806e564dfc9.png (https://hostingkartinok.com/show-image.php?id=69d198ac2e8298ec1f540806e564dfc9)


glkub = CreateObject(5259, 1236.181518, -1728.179199, 14.122141, 0.000000, 32.999992, -58.299983, 300.00);
kub[0] = CreateObject(5259, 1229.187011, -1720.275756, 14.110514, 0.000000, 0.000000, 0.000000, 300.00);
kub[1] = CreateObject(5259, 1229.183837, -1720.270141, 21.074384, 0.000000, 0.000000, -44.799961, 300.00);
AttachObjectToObject(kub[0], glkub, -6.994507, 7.903443, 0.011627, 0.000000, 0.000000, 0.000000,1);
AttachObjectToObject(kub[1], glkub, -6.997681, 7.909058, 6.952243, 0.000000, 0.000000, -44.799961,1);

Geebrox
09.01.2018, 19:54
Почему обьекты следует за гланым обьектом, но не по тем координатам которые я задал ему?
Как должно быть
https://s8.hostingkartinok.com/uploads/thumbs/2018/01/4ed1d2b871437e56313feea280c5b237.png (https://hostingkartinok.com/show-image.php?id=4ed1d2b871437e56313feea280c5b237)
Что получилось
https://s8.hostingkartinok.com/uploads/thumbs/2018/01/69d198ac2e8298ec1f540806e564dfc9.png (https://hostingkartinok.com/show-image.php?id=69d198ac2e8298ec1f540806e564dfc9)


glkub = CreateObject(5259, 1236.181518, -1728.179199, 14.122141, 0.000000, 32.999992, -58.299983, 300.00);
kub[0] = CreateObject(5259, 1229.187011, -1720.275756, 14.110514, 0.000000, 0.000000, 0.000000, 300.00);
kub[1] = CreateObject(5259, 1229.183837, -1720.270141, 21.074384, 0.000000, 0.000000, -44.799961, 300.00);
AttachObjectToObject(kub[0], glkub, -6.994507, 7.903443, 0.011627, 0.000000, 0.000000, 0.000000,1);
AttachObjectToObject(kub[1], glkub, -6.997681, 7.909058, 6.952243, 0.000000, 0.000000, -44.799961,1);


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

Angeeel
09.01.2018, 20:07
они прикрепляются к главному объекту под углами, которых ты указал. Потом они полностью сливаются с главным, то есть если ты перетащишь или будешь поварачивать главный объект, то прикрепленные тоже последуют за ним.

Как мне сделать так, как н
а 1-й картинке?

Geebrox
09.01.2018, 20:27
сначала ставишь главный объект, а потом те которые хочешь закрепить (причем ставишь их так, как хотел закрепить их к главному). Далее берешь координаты главного объекта и тех которых хотел закрепить, вычитаешь их. У тебя будут координаты для прикрепление объектов к главному.

Angeeel
09.01.2018, 21:14
сначала ставишь главный объект, а потом те которые хочешь закрепить (причем ставишь их так, как хотел закрепить их к главному). Далее берешь координаты главного объекта и тех которых хотел закрепить, вычитаешь их. У тебя будут координаты для прикрепление объектов к главному.

Извини

А я что по твоему сделал там?

Я установил 3 объекта, назначил 1 объект(тот, что 1 коробка) главным. К нему прикрепил остальные коробки. Рассчитал координаты x,y,z(объект - главный объект) и как сказали в теме выше не трогал ротацию, оставил такой как у объекта. Протестировал и получилось все как на картинках.

Geebrox
10.01.2018, 00:39
Ротацию тоже вычитывай

Angeeel
10.01.2018, 18:09
Ротацию тоже вычитывай
Все равно криво

Geebrox
10.01.2018, 18:20
Все равно криво

Значит что-то не правильно делаешь, не должно получаться криво. Перепроверь всё.

Angeeel
10.01.2018, 20:30
[QUOTE=Geebrox;89072]Значит что-то не правильно делаешь, не должно получаться криво.

Ротацию нужно рассчитывать как и x y z?