Переменый сдвиг координат при работе с D3D

Тема в разделе "WASM.DirectX", создана пользователем _220, 18 сен 2006.

  1. _220

    _220 New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2006
    Сообщения:
    111
    Мне нужно, чтобы мое приложение могло работать в окне.
    Я использую пока (как заглушечный вариант) GetCursorPos (возвращает экранные координаты мыши), затем GetWindowRect (позиция окна), потом преобразую кординаты в относительные и пытаюсь с ними работать, но Direct3D видит только клиентскую часть окна, ладно, константно (на глаз) корректирую "прицел":
    что-то типа mx+=4; my+=20 (чотбы учесть заголовок), и вывожу в позиции мыши D3D квадрат, но расстояние между квадратом и курсором меняется при движении по окну. Вся проблема в том, что экранные и D3D координаты как-то непонятно связаны.
     
  2. vito

    vito New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2004
    Сообщения:
    177
    В SDK есть как раз такой пример. Называется указка.
     
  3. _220

    _220 New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2006
    Сообщения:
    111
    не знаю как насчет "указка", а вот "pick" я нашел, посмотрю,
    правда наворочно лишнего много, но я покопаюсь.
     
  4. vito

    vito New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2004
    Сообщения:
    177
    Там из-за модели наворочено. Кроме работы с координатами, показана работа с моделью. Опеределение точки модели, куда мы ткнули указателем.
     
  5. _220

    _220 New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2006
    Сообщения:
    111
    Что-то там не тое, там кординаты не RHW, а 3D, что впрочем тоже пригодится, но мне сейчас надо работа с RHW вершинами
     
  6. vito

    vito New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2004
    Сообщения:
    177
    RHW - это задание вершин. А что и как мы нарисуем из них - по желанию.
    А в этом примере показан пример работы с координатами(их взаимосвязь), с моделью - которая состоит из тругольников.
    Конечно сложновато, но дает ответы на очень много вопросов.
    Суть, та же самая. Работа с координатами.
    Здесь проблема в том, что сразу появилась модель. MS пыталась в одном примере дать ответ на кучу вопросов.

    D3D удобная штука, но я все - же сторонник open GL.:)
     
  7. _220

    _220 New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2006
    Сообщения:
    111
    честно говоря я ничего не понял,но вот эти магические строчки помогли:
    mx += (int)4*mx*matProjection._11/wWidth;
    my += (int)12*my*matProjection._22/wHeight;
    , хотя по y существует маленькая неточность, но она настолько незначительна, что
    мне не мешает.