Beispiel #1
0
 private void parse(string file_name)
 {
     string[] lines = File.ReadAllLines(file_name);
     foreach (string line in lines)
     {
         List <Point3d> points_polygon = new List <Point3d>();
         string[]       coordinates    = line.Split(' ')[1].Split(';');
         foreach (string coordinate in coordinates)
         {
             string   coordinate_without_brackets = coordinate.Trim(new char[] { '(', ')' });
             string[] numbers    = coordinate_without_brackets.Split(',');
             Point3d  temp_point = new Point3d(float.Parse(numbers[0]), float.Parse(numbers[1]), float.Parse(numbers[2]));
             points_polygon.Add(temp_point);
         }
         Polygon3d temp_polygon = new Polygon3d(points_polygon);
         main_polyhedron.polygons.Add(temp_polygon);
     }
     draw_main_polyhedron();
 }
Beispiel #2
0
 private void button_add_tetrahedron_Click(object sender, EventArgs e)
 {
     if (is_drawn == false)
     {
         is_drawn = true;
         float x = float.Parse(textBox_coordinate_X.Text);
         float y = float.Parse(textBox_coordinate_Y.Text);
         float z = float.Parse(textBox_coordinate_Z.Text);
         length = float.Parse(textBox_coordinate_length.Text);
         float   length_2 = (float)(length / Math.Sqrt(2));
         Point3d start    = new Point3d(x, y, z);
         Point3d p2       = new Point3d(x + length_2, y + length_2, z);
         Point3d p3       = new Point3d(x + length_2, y, z + length_2);
         Point3d p4       = new Point3d(x, y + length_2, z + length_2);
         polyhedron_points.Add(start);
         polyhedron_points.Add(p2);
         polyhedron_points.Add(p3);
         polyhedron_points.Add(p4);
         projection_points.Add(start);
         projection_points.Add(p2);
         projection_points.Add(p3);
         projection_points.Add(p4);
         g.DrawLine(pen, start.To2D(), p2.To2D());
         g.DrawLine(pen, start.To2D(), p3.To2D());
         g.DrawLine(pen, start.To2D(), p4.To2D());
         g.DrawLine(pen, p2.To2D(), p3.To2D());
         g.DrawLine(pen, p2.To2D(), p4.To2D());
         g.DrawLine(pen, p3.To2D(), p4.To2D());
         Polygon3d polygon_1st = new Polygon3d();
         Polygon3d polygon_2nd = new Polygon3d();
         Polygon3d polygon_3rd = new Polygon3d();
         Polygon3d polygon_4th = new Polygon3d();
         polygon_1st.points.Add(start); polygon_1st.points.Add(p2); polygon_1st.points.Add(p3);
         polygon_2nd.points.Add(start); polygon_2nd.points.Add(p2); polygon_2nd.points.Add(p4);
         polygon_3rd.points.Add(start); polygon_3rd.points.Add(p3); polygon_3rd.points.Add(p4);
         polygon_4th.points.Add(p2); polygon_4th.points.Add(p3); polygon_4th.points.Add(p4);
         main_polyhedron.polygons.Add(polygon_1st);
         main_polyhedron.polygons.Add(polygon_2nd);
         main_polyhedron.polygons.Add(polygon_3rd);
         main_polyhedron.polygons.Add(polygon_4th);
         pictureBox_3d_picture.Refresh();
     }
 }