Author Topic: Как определить точку, куда смотрит камера   (Read 50 times)

0 Members and 1 Guest are viewing this topic.

Offline Tiranas

  • Friends
  • Esquire
  • *
  • Posts: 81
  • Reputation 38
  • Совсем Тёмный.
Если камера в нулевом положении (0,0,0), то wCameraGetTarget(Camera) выдаёт корректные результаты, а если камеру сдвинуть, то получается фигня.

Мне нужно определить точку куда смотрит камера на расстоянии 5000,
но не выходит.
Фокус из примера:
Code: [Select]
      StartVector = wNodeGetPosition(Camera)
      EndVector=wCameraGetTarget(Camera)
      EndVector.x = ((EndVector.x - StartVector.x)*5000)
      EndVector.y = ((EndVector.y - StartVector.y)*5000)
      EndVector.z = ((EndVector.z - StartVector.z)*5000)
Не даёт результата, и значения начинают зашкаливать.

Киньте пожалуйста рабочий код.
« Last Edit: July 19, 2019, 09:37:14 PM by Tiranas »
Людям с более широким кругозором ведомо, что четкой границы между реальным, действительным и ирреальным воображаемым не существует, что каждый из нас, благодаря тонким физиологическим и психологическим различиям, воспринимает все явления по-своему. (Говард Филлипс Лавкрафт)

Offline Nikolas - WS3D Developer

  • Programmer
  • Global Moderator
  • Marquess
  • *
  • Posts: 897
  • Reputation 63
Привет всем! Привет, Tiranas.
Ты забыл нормировать разность векторов. Вставь перед умножением на 5000
Code: [Select]
StartVector=wMathVector3fNormalize(StartVector)
EndVector=wMathVector3fNormalize(EndVector)
Возможно, я опоздал с сообщением, но лучше поздно, чем никогда.

------------------------------
Впрочем, более разумно сначала вычесть вектора, а уж затем нормировать и умножать на коэффициент.
« Last Edit: July 21, 2019, 05:39:02 PM by Nikolas - WS3D Developer »
Под лежачий камень мы всегда успеем...