public static void Main() { // Examples of basic operations with GeometRi // Global coordinate system is created automatically and can be accessed as "Coord3d.GlobalCS" Console.WriteLine("Number of defined coordinate systems: {0}", Coord3d.Counts); Console.WriteLine(); Console.WriteLine("Default coordinate system: "); Console.WriteLine(Coord3d.GlobalCS.ToString()); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("!!! Find intersection of plane with line !!!"); // Define point and vector in global CS Point3d p1 = new Point3d(1, -5, -1); Vector3d v1 = new Vector3d(-2, 3, 4); // Define line using point and vector Line3d l1 = new Line3d(p1, v1); // Define plane using general equation in 3D space in the form "A*x+B*y+C*z+D=0" Plane3d s1 = new Plane3d(-2, 2, 3, -29); // Find the intersection of line with plane. // The results could be point, line or nothing, therefore get result as general object // and determine it's type. object obj = l1.IntersectionWith(s1); if (obj != null) { if (obj.GetType() == typeof(Line3d)) { Console.WriteLine("Intersection is line"); Line3d l2 = (Line3d)obj; Console.WriteLine(l2.ToString()); } else if (obj.GetType() == typeof(Point3d)) { Console.WriteLine("Intersection is point"); Point3d p2 = (Point3d)obj; Console.WriteLine(p2.ToString()); } } // Short variant // Will cause "InvalidCastException" if the intersection is not a point Point3d p3 = (Point3d)l1.IntersectionWith(s1); Console.WriteLine(p3.ToString()); Console.ReadLine(); }
public void CodeLine3d(ref Line3d v) { AddValue(v.ToString()); }