forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Глобальные координаты Vertex (http://forum.boolean.name/showthread.php?t=14921)

voron 18.06.2011 00:02

Глобальные координаты Vertex
 
1. Можно как-нибудь получить глобальные координаты вершины меша?
2. Можно как-нибудь переместить вершину в точку, указав глобальные координаты?

SBJoker 18.06.2011 00:05

Ответ: Глобальные координаты Vertex
 
Можно, пересчитать локальные в глобальные через TFormVertex и аналогичные.

Mr_F_ 18.06.2011 00:05

Ответ: Глобальные координаты Vertex
 
Используй TFormVector

voron 18.06.2011 00:51

Re: Глобальные координаты Vertex
 
Код:


;Получаем глобальные координаты для Vertex

sphere=CreateSphere(16)
nomer=10
sphere_surface=GetSurface(sphere,1)
TFormVector VertexX(sphere_surface,nomer),VertexY(sphere_surface,nomer),VertexZ(sphere_surface,nomer),sphere,0

glob_x#=TFormedX()
glob_y#=TFormedY()
glob_z#=TFormedZ()


; Устанавливаем глобальные координаты для Vertex

cube=CreateCube()
cube_surface=GetSurface(cube,1)
nomer=11
TFormVector glob_x#,glob_y#,glob_z#,0,cube

VertexCoords cube_surface,nomer,TFormedX(),TFormedY(),TFormedZ()

По ходу я что-то неправильно понял.

Mr_F_ 18.06.2011 03:16

Ответ: Глобальные координаты Vertex
 
вроде всё правильно

Жека 18.06.2011 10:53

Ответ: Глобальные координаты Vertex
 
А может глобальные координаты вершин вот так получать:

Код:

vx# = VertexX(sphere_surface,nomer)+EntityX(sphere,True)
vy# = VertexY(sphere_surface,nomer)+EntityY(sphere,True)
vz# = VertexZ(sphere_surface,nomer)+EntityZ(sphere,True)


HolyDel 18.06.2011 11:13

Ответ: Глобальные координаты Vertex
 
Жека
неа - а если ентитю повернут или отскалят?

dsd 18.06.2011 12:42

Ответ: Глобальные координаты Vertex
 
А почему низзя назначить меш к паренту и двигать парентом, и локально коверкать меш. И потом в нужной позиции атачить к мешу другие.
Или цеплять к паренту ентити предварительно смещая ее мовемешем должным образом? Помоему легче сделать чтобы у мешей координаты совпадали чем сочинять имхо лишний код, который на глаз просечь без медитаций невозможно.

ANDREYman 21.06.2011 00:41

Ответ: Глобальные координаты Vertex
 
TFormPoint
только нужно не вершины пересчитывать, а те координаты, что с ними работают переводить в локальную систему меша.

voron 22.06.2011 01:18

Re: Глобальные координаты Vertex
 
Нужно перединуть точку 235 меша 1, в точку которая имеет координаты точки 23 меша 2, т.е. гуда, где находиться точка 23 меша 2. Как это сделать?

ANDREYman 22.06.2011 06:58

Ответ: Глобальные координаты Vertex
 
TFormPoint V23x#, V23y#, V23z#, entity2, entity1
VertexCoords surface,235,TFormedX(),TFormedY(),TFormedZ()


Алгоритм понятен? :)

dsd 22.06.2011 10:37

Ответ: Глобальные координаты Vertex
 
Алгоритм таков:
1.нахожу координаты точки цели
2.тформлю их в мировые
3.тформлю полученные мировые в координаты меша снаряда
4.ставлю вертекс снаряда в точку полученную в п.3

Можно сделать сразу из меша 1 в меш 2 как у Andreyman, но так наглядней.
Код:

Function vertexpositioner(srcmesh,index1,destmesh,index2)
srcsurf=GetSurface(srcmesh,1)
destsurf=GetSurface(destmesh,1)
x0#=VertexX(srcsurf,index1)
y0#=VertexY(srcsurf,index1)
z0#=VertexZ(srcsurf,index1)

TFormPoint x0,y0,z0,srcmesh,0

x01#=TFormedX()
y01#=TFormedY()
z01#=TFormedZ()


TFormPoint x01,y01,z01,0,destmesh

x1#=TFormedX()
y1#=TFormedY()
z1#=TFormedZ()

VertexCoords destsurf,index2,x1,y1,z1

End Function

Команды я не знал и не понимал, спасибо тебе, ворон :-D


Часовой пояс GMT +4, время: 21:22.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot