Алгоритм пересечения 2 линий?C#

Место общения программистов C#
Ответить
Anonymous
 Алгоритм пересечения 2 линий?

Сообщение Anonymous »

У меня есть 2 строки. Обе линии, содержащие их 2 точки X и Y. Это означает, что они оба имеют длину. < /P>
Я вижу 2 формулы, одну, используя детерминанты и одну с использованием нормальной алгебры. Что было бы наиболее эффективным для расчета, и как выглядит формула? < /P>
Мне трудно использовать матрицы в коде.public static Vector3 Intersect(Vector3 line1V1, Vector3 line1V2, Vector3 line2V1, Vector3 line2V2)
{
//Line1
float A1 = line1V2.Y - line1V1.Y;
float B1 = line1V1.X - line1V2.X;
float C1 = A1*line1V1.X + B1*line1V1.Y;

//Line2
float A2 = line2V2.Y - line2V1.Y;
float B2 = line2V1.X - line2V2.X;
float C2 = A2 * line2V1.X + B2 * line2V1.Y;

float det = A1*B2 - A2*B1;
if (det == 0)
{
return null;//parallel lines
}
else
{
float x = (B2*C1 - B1*C2)/det;
float y = (A1 * C2 - A2 * C1) / det;
return new Vector3(x,y,0);
}
}


Подробнее здесь: https://stackoverflow.com/questions/454 ... of-2-lines
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»