Показать сообщение отдельно
Старый 21.12.2010, 06:26   #2
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Помогите осуществить совпадение координат

Мне на ум приходит хранить точки сетки в своей структуре типа vector3d{x#,y#z#}. Изначально инициализировать их значениями точек из plane.
Потом рисовать второй plane с режимом wireframe, немного придвинутым к камере, чтоб видеть сетку. Модифицировать его вместе с тем что с текстурой.

А рисовать управляющие точки можно в 2д с помощью проекций (но возможно это не лучший метод, но мне он приглянулся вдруг).

CameraProject(camera,selectedX[k],selectedY[k],selectedZ[k]) 
Oval(ProjectedX(),ProjectedY(),5,5)
selectedX(Y,Z) - координаты вершин

Наверное, месиво из круглешков получится (эх).

Ну а если сферами, то вот тут заменить код можно, вот это:

For x=0 To chislo_vertex 
  array_point(x)=CreateSphere(16) 
  PositionEntity array_point(x),-1,0,15 
  ScaleEntity array_point(x),0.1,0.1,0.1 
  EntityColor array_point(x),0,255,0 
  EntityPickMode array_point(x),1 
Next
на это:

array_point(0) = CreateSphere(16) 
PositionEntity array_point(0),-1,0,15 
ScaleEntity array_point(0),0.1,0.1,0.1 
EntityColor array_point(0),0,255,0 
EntityPickMode array_point(0),1 

For x=1 To chislo_vertex 
  array_point(x) = CopyEntity(array_point(0)) 
Next
А выбор вершин можно делать так. На клик мышки (MouseHit) выбираешь свою сферу, за которую тянуть. И покуда не отпустишь мышь - двигаешь. У тебя щас на зажатие (MouseDown) выбор выделенного, но это же шляпа.
(Offline)
 
Ответить с цитированием