Проекция вектора на ось в C++

программирование математика C++ геометрия механика

Объясните доходчиво пожалуйста, как реализовать эту проекцию в коде.

Проекція вектора a={5; 2; 5} на вісь вектора b={2; 1; 2}

Мне до математики как в косом раком. код писать не нужно, просто огромная просьба объяснить как вообще эту херь посчитать???? :(
Ответы:
public static Vector3 Project(Vector3 vector, Vector3 onNormal)
   {
     float num = Vector3.Dot(onNormal, onNormal);
     if ((double) num < 1.40129846432482E-45)
       return Vector3.zero;
     else
       return onNormal * Vector3.Dot(vector, onNormal) / num;
   }
из точки a построй прямую, ортогональную и пересекающую b и найди точку её пересечения с b, это и будет проекция (мы же про ортогональную проекцию, да?)
Скалярное произведение a*b надо разделить на длину вектора b:
ab/|b|=(5*2+2*1+5*2)/sqrt(4+1+4)=22/3


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.