Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 12.02.2012
Сообщений: 54
1

Vb.net directx, slimdx преобразовать экранные координаты мыши в 3d координаты

03.03.2018, 09:45. Показов 1361. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
vb.net directx, slimdx преобразовать экранные координаты мыши в 3d координаты

необходимо передвигать объекты мышью по плоскости XY, при Z=0

может у кого есть готовый пример ?

Добавлено через 16 часов 38 минут
нашёл что то похожее на C, но ни как не могу понять, может кто поможет ?

C++
1
2
3
4
5
6
D3DXVec3Unproject(&p1, &D3DXVECTOR3(g_MouseXPos, g_MouseYPos, 0), &pViewport, &proj, &view, &world);
// на ближней грани отсечения
D3DXVec3Unproject(&p2, &D3DXVECTOR3(g_MouseXPos, g_MouseYPos, 1), &pViewport, &proj, &view, &world);
// на дальней грани отсечения
// далее находим луч ray = p2 - p1
// и ищем точку пересечения луча(ray) и плоскости земли или что там у Вас...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2018, 09:45
Ответы с готовыми решениями:

Экранные координаты в мировые
Ребят всем доброго времени суток, подскажите как перевести координаты курсора т.е. (X и Y) в...

Мировые координаты через экранные
Здравствуйте!Мне необходимо найти мировые координаты в пространстве с помощью точки на экране(точка...

Преобразование в экранные координаты (неточность)
Здравствуйте! Я опять с дурацкими вопросами) Возникла проблема с пробразованием object space -...

Узнать экранные координаты точки
Есть камера, есть точка в трехмерном пространстве. Координаты точки известны. Есть матрица камеры и...

5
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
03.03.2018, 10:06 2
http://www.gamedev.ru/code/forum/?id=152262
http://savardge.narod.ru/dx/article_dx10.html
http://www.gamedev.ru/code/forum/?id=123011
0
1 / 1 / 0
Регистрация: 12.02.2012
Сообщений: 54
03.03.2018, 11:07  [ТС] 3
там на с, а мне нужно на vb.net помогите, а то тормознул на этой части программы и дальше не могу ничего делать. спасибо.
0
1 / 1 / 0
Регистрация: 12.02.2012
Сообщений: 54
04.03.2018, 09:54  [ТС] 5
e.Location.X, e.Location.Y - позиция мыши
0, 0, PictureBox1.Width, PictureBox1.Height - размеры экрана

VB.NET
1
2
3
4
5
6
7
8
9
10
 Vector3.Unproject(New Vector3(e.Location.X, e.Location.Y, 1), 0, 0, PictureBox1.Width, PictureBox1.Height, 0, grafic1.Viewport.MaxZ, grafic1.GetTransform(TransformState.World) * grafic1.GetTransform(TransformState.View) * grafic1.GetTransform(TransformState.Projection), result1)
                Vector3.Unproject(New Vector3(e.Location.X, e.Location.Y, 0), 0, 0, PictureBox1.Width, PictureBox1.Height, 0, grafic1.Viewport.MaxZ, grafic1.GetTransform(TransformState.World) * grafic1.GetTransform(TransformState.View) * grafic1.GetTransform(TransformState.Projection), result2)
 
                Dim direction As Vector3 = result1 - result2
                direction.Normalize()
 
                Dim pickRay As New Ray(result1, direction)
 
                ob(i).Px = (pickRay.Position.X  - StartPoint(i).X)
                ob(i).Py = (pickRay.Position.Y  - StartPoint(i).Y)
вроде как сделал, всё в общем то хорошо, но, объект передвигается быстрее чем мышь, ввёл делитель на 20

VB.NET
1
2
 ob(i).Px = (pickRay.Position.X / 20 - StartPoint(i).X)
                ob(i).Py = (pickRay.Position.Y / 20 - StartPoint(i).Y)
стало лучше, но при Z камеры =12000 объект передвигается немножко медленнее мыши, если уменьшить высоту камеры до Z=3000, - происходит наоборот, объект начинают двигаться немного быстрее мыши.

такое ощущение что не учитывается высота Z камеры над объектом

может кто поможет ?
0
1 / 1 / 0
Регистрация: 12.02.2012
Сообщений: 54
06.03.2018, 13:20  [ТС] 6
всё, разобрался, теперь всё работает.
0
06.03.2018, 13:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2018, 13:20
Помогаю со студенческими работами здесь

Как узнать экранные координаты символа в TMemo?
Пытаюсь синхронизировать два окна TMemo. Для того, чтобы сымитировать клик мыши по неактивному...

Какой тип в LLP64 имеют экранные координаты?
Какой тип в LLP64 имеют экранные координаты?

как получить экранные координаты пунка меню ToolStripMenuItem
Хочу получить координаты пункта меню ToolStripMenuItem, т.е. точку Point его верхнего левого угла....

Функция для преобразования позиции и размеров компонента в экранные координаты
Всем здравствуйте. На форме размещён компонент имеющий свойства Left, Top, Width, Height. Нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru