Векторное произведение 2 2D векторов

Кто-либо может обеспечить пример функции, которая возвращает векторное произведение ДВУХ 2-х векторов? Я пытаюсь реализовать этот алгоритм.

C код было бы большим.Спасибо.


Править: найденный иначе todo это, который работает на 2D и очень легок.

bool tri2d::inTriangle(vec2d pt) {
    float AB = (pt.y-p1.y)*(p2.x-p1.x) - (pt.x-p1.x)*(p2.y-p1.y);
    float CA = (pt.y-p3.y)*(p1.x-p3.x) - (pt.x-p3.x)*(p1.y-p3.y);
    float BC = (pt.y-p2.y)*(p3.x-p2.x) - (pt.x-p2.x)*(p3.y-p2.y);

    if (AB*BC>0.f && BC*CA>0.f)
        return true;
    return false;    
}

7
задан 25 February 2010 в 11:41
поделиться

2 ответа

(Примечание: Перекрестное произведение двух векторов определяется только в трехмерном и 7-мерном пространствах .)

Код вычисляет z - компонент двух векторов, лежащих на плоскости xy :

vec2D a, b;
...
double z = a.x * b.y - b.x * a.y;
return z;
16
ответ дан 6 December 2019 в 12:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: