Проблемы с мышью и координатами 3D

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

PilatP
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 117
Зарегистрирован: 24.08.2009 (Пн) 1:00
Откуда: Херсон

Проблемы с мышью и координатами 3D

Сообщение PilatP » 19.12.2009 (Сб) 16:57

Помогите кто нибуть!
Нужна функция которая будет рисовать обьект на ландшафте под курсором!
вот то что я наваял но она не точная
Код: Выделить всё
Dim NMouseX, NMouseY, Xdist As Single ', Aspect As Single
Dim  Mouse_3D As D3DVECTOR

Public Sub Mouse_Val_Z(MouseX as Integer,MouseY as Integer )

NMouseX = 1# - (2# * (MouseX / Разрешение_Экрана_X))
NMouseY = -1# + (2# * (MouseY / Разрешение_Экрана_Y))

Xdist = 500 - ((NMouseY * 500) / 0.45)

Mouse_3D.X = (((CamPos.X * -NMouseX) + (Sin(AngleConv)) * Xdist))
Mouse_3D.Z = (CamPos.Z + (Cos(AngleConv)) * Xdist) '1000 + CamPos.Z
Mouse_3D.Y = 50
result = DistancePoints(CamPos, Mouse_3D)
End Sub

DrawMesh Shar, Mouse_3D.X, 5, Mouse_3D.Z, 0, 0, 0, 0.1, 0.1, 0.1



Плиз помогите кто я уже запарился :roll:
Я не волшебник, я только учусь)

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Проблемы с мышью и координатами 3D

Сообщение Mikle » 19.12.2009 (Сб) 17:07

Почитай тему:
viewtopic.php?f=6&t=20872&st=0&sk=t&sd=a
Там в примерах ландшафта есть функция RayInterSector, как раз для нахождения таких координат.

PilatP
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 117
Зарегистрирован: 24.08.2009 (Пн) 1:00
Откуда: Херсон

Re: Проблемы с мышью и координатами 3D

Сообщение PilatP » 14.10.2010 (Чт) 10:12

Привет Mikle!
Тема давняя, но для меня она так и не решена!!!
Ты дал эту ссылку.

Mikle писал(а):Почитай тему:
viewtopic.php?f=6&t=20872&st=0&sk=t&sd=a
Там в примерах ландшафта есть функция RayInterSector, как раз для нахождения таких координат.


И она работает, но мне нужно чтобы мышка(курсор) не блокировался, а определение Vectora шло не из центра Экрана от туда где находится мышка(Вид от Третего литца! я вижу героя и окружение /ланд,деревья,и пр./ и мышкой выбираю куда идти герою! )
я пробовал RayInterSector подставлять значения в Angle и Pitch(Diff)и значения положения курсора по Х и Y, но ни чего не получилось, Прошу помоги ,замучался второй месяц не могу здвинутся с места! :cry:
Я не волшебник, я только учусь)

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Re: Проблемы с мышью и координатами 3D

Сообщение DirectXManiac » 14.10.2010 (Чт) 13:07

Для этого нужно переделать координаты мыши из 2д в 3д.
Код: Выделить всё
Public Function GetMousePickDirection(X As Single, Y As Single) As D3DVECTOR
Dim Mtemp As D3DMATRIX
Dim Mtemp2 As D3DMATRIX
Dim view As D3DVIEWPORT8

d3dDevice.GetTransform D3DTS_WORLD, Mtemp
d3dDevice.GetViewport view
On Local Error Resume Next
Cursor.X = X
Cursor.Y = Y
Cursor.z = 0
d3dDevice.GetTransform D3DTS_VIEW, Mtemp2
D3DXVec3Unproject vNear, Cursor, view, pjm, Mtemp2, Mtemp
Cursor.z = 1
D3DXVec3Unproject vFar, Cursor, view, pjm, Mtemp2, Mtemp
D3DXVec3Subtract GetMousePickDirection, vFar, vNear
End Function

С помощью этой функции переделываешь координаты в направление луча и скармливаешь RayIntersection.
#define ROFL 0xDDDD

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Проблемы с мышью и координатами 3D

Сообщение Mikle » 14.10.2010 (Чт) 21:52

Демка старая, выкладываю ещё раз.
Тут, пока кнопки мыши не нажаты - мы движемся, но курсор всегда в центре, если нажать кнопку мыши (любую), то вращение мышью прекращается, можно указывать любое направление, RayInterSector рассчитает и покажет точку пересечения.
У вас нет доступа для просмотра вложений в этом сообщении.

PilatP
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 117
Зарегистрирован: 24.08.2009 (Пн) 1:00
Откуда: Херсон

Re: Проблемы с мышью и координатами 3D

Сообщение PilatP » 15.10.2010 (Пт) 7:42

Спасибо что откликнулись :D сегодня гляну и напишу результат! :D
Я не волшебник, я только учусь)


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList  
cron