powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как прописать функциональную зависимость
11 сообщений из 11, страница 1 из 1
Как прописать функциональную зависимость
    #38006772
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Застряли вот на такой ситуации. Есть координаты клика в координатном пространстве экрана и надо перевести эти координаты на плоскость фигуры, у которой координатное пространство наклонено (боковая стена).

Ручные замеры на конкретных величинах показывают следующую зависимость:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  
x-координаты

мышь       плоскость стены
- - - - - - - - - - - - - - - - -
  0    =>       0
150    =>     500
262    =>    1000 
347    =>    1500
415    =>    2000
470    =>    2500



Собственно вопрос. Подскажите как зная эти данные запрограммировать автоматическое преобразование х координаты мыши в координаты плоскости

Код: plaintext
1.
2.
int wallX = trans(mouseX);
int trans(int mouseX) { int res = 0; (что тут???) return res; }
...
Рейтинг: 0 / 0
Как прописать функциональную зависимость
    #38006787
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixчто тут???
Косинус угла поворота. Гугли по словам "проекция точки на плоскость".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как прописать функциональную зависимость
    #38006793
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно тынц для ленивых.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как прописать функциональную зависимость
    #38006811
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

спасибо за совет, но не помогло. Там преобразование происходит quad2quad полигон из четырех точек экрана fullHD в соотв. полигон из четырех точек плоскости.

Когда пробуем применять матрицу трансформации, которая используется для конвертации самой плоскости, то например середина красного отрезка точно попадает в середину розовой плоскости, но визуально эти линии не совпадают, а задача стоит, чтобы линия на экране давала точную проекцию на плоскость, ну и там рисуется рисунок с учетом трансформации плоскости. Сейчас получается этот рисунок не попадает в курсор.

...
Рейтинг: 0 / 0
Как прописать функциональную зависимость
    #38006815
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут на рисунке не совсем точно. Реальные координаты трансформаций такие

Код: plaintext
1.
2.
3.
       (0, 0)    =>   (0, 0)           (1920, 0)    =>  (405, 240)

       (0, 1080) =>   (0, 822)         (1920, 1080) =>  (405, 723)
...
Рейтинг: 0 / 0
Как прописать функциональную зависимость
    #38006819
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот quad2quad задает трансформацию, а потом чтобы вся стена заполнилась текстурой, то её ширина получается 2500 точек в полученном после преобразования пространстве.
...
Рейтинг: 0 / 0
Как прописать функциональную зависимость
    #38006826
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixвизуально эти линии не совпадают, а задача стоит, чтобы линия на экране давала
точную проекцию на плоскость
Невозможно. При такой проекции с учётом перспективы, горизонтальная линия, например, на
экране будет наклонной после проекции на плоскость и обратно, поскольку в данном случае на
плоскость (стену) идёт центральная проекция, а обратно - параллельная.
http://ru.wikipedia.org/wiki/Проекция_(геометрия)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как прописать функциональную зависимость
    #38006837
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovна плоскость (стену) идёт центральная проекция, а обратно -
параллельная.
А, не, вру, в обе стороны там идёт центральная проекция. Это основа перспективы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как прописать функциональную зависимость
    #38006843
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

короче, мы с горя вообще думаем, что нам придется мутить что-то типа
Код: plaintext
1.
2.
3.
4.
5.
int wallX = 0;
if (mouseX > 0 && mouseX < 150) wallX =  int ( 500 * (mouseX / 150.f) );
if (... 

и такой пак для каждой боковой стены, у которой перспектива



Каппец блин!!((((
...
Рейтинг: 0 / 0
Как прописать функциональную зависимость
    #38006850
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixмы с горя вообще думаем, что нам придется мутить что-то типа

Ну, если у вас хреново и с геометрией и с математикой, то - да. Иначе могли бы поискать
алгоритмы обратной трассировки
лучей
, поскольку это именно то, что вам нужно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как прописать функциональную зависимость
    #38007012
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, им не более чем афинные преобразования нужны.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как прописать функциональную зависимость
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]