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(); }
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(); } }