.NET 4.x Нахождение точки пересечения двух отрезков заданных координатами - C#
Формулировка задачи:
Есть ли у кого решение на нахождение точки пересечения двух отрезков заданных координатами A(x1,y1,z1) и B(x2,y2,z2)?
Спасибо.
Решение задачи: «.NET 4.x Нахождение точки пересечения двух отрезков заданных координатами»
textual
Листинг программы
using System; class Program { static void Main(string[] args) { Point A = new Point(4, -1, 2); Point B = new Point(-4, 8, 5); Point C = new Point(4, -4, 2); Point D = new Point(-28, 38, 14); Point IX = Intersection(A, B, C, D); Console.WriteLine("{0} {1} {2}", IX.X, IX.Y, IX.Z); Console.ReadKey(); } static public Point Intersection(Point A, Point B, Point C, Point D) { double xo = A.X, yo = A.Y, zo = A.Z; double p = B.X - A.X, q = B.Y - A.Y, r = B.Z - A.Z; double x1 = C.X, y1 = C.Y, z1 = C.Z; double p1 = D.X - C.X, q1 = D.Y - C.Y, r1 = D.Z - C.Z; double x = (xo * q * p1 - x1 * q1 * p - yo * p * p1 + y1 * p * p1) / (q * p1 - q1 * p); double y = (yo * p * q1 - y1 * p1 * q - xo * q * q1 + x1 * q * q1) / (p * q1 - p1 * q); double z = (zo * q * r1 - z1 * q1 * r - yo * r * r1 + y1 * r * r1) / (q * r1 - q1 * r); return new Point(x, y, z); } } class Point { public double X { get; set; } public double Y { get; set; } public double Z { get; set; } public Point() { } public Point(double x, double y, double z) { X = x; Y = y; Z = z; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д