Реализация 1 возвращает величину вектора, которая возникнет в результате регулярного трехмерного перекрестного произведения входных векторов, неявно принимая их значения Z как 0 (т.е. обрабатывая 2D-пространство как плоскость в 3D-пространстве). Трехмерное перекрестное произведение будет перпендикулярно этой плоскости и, следовательно, будет иметь 0 компонентов X & Y (таким образом, возвращаемым скаляром является значение Z вектора трехмерного перекрестного произведения).
Обратите внимание, что величина вектора, полученного в результате перекрестного трехмерного произведения, также равна области параллелограмма между двумя векторами, что дает Реализации 1 еще одну цель. Кроме того, эта область подписана и может использоваться для определения того, перемещается ли вращение от V1 до V2 против часовой стрелки или по часовой стрелке. Следует также отметить, что реализация 1 является определителем матрицы 2x2, построенной из этих двух векторов.
Реализация 2 возвращает вектор, перпендикулярный входному вектору, который все еще находится в той же 2D-плоскости. Не перекрестное произведение в классическом смысле, а согласованное в смысле «дай мне перпендикулярный вектор».
Обратите внимание, что евклидово пространство 3D закрыто в результате операции перекрестного произведения, то есть перекрестное произведение двух трехмерных векторов возвращает другой трехмерный вектор. Обе вышеперечисленные 2D-реализации так или иначе несовместимы с этим.
Надеюсь, это поможет ...