public void DrawGrid(PaintEventArgs e) { //build Mesh frame with vertices var mesh = new Mathtastic.Structures.Mesh("Cube!", 8); mesh.Vertices[0] = new m.Vector(-1, 1, 1); mesh.Vertices[1] = new m.Vector(1, 1, 1); mesh.Vertices[2] = new m.Vector(-1, -1, 1); mesh.Vertices[3] = new m.Vector(-1, -1, -1); mesh.Vertices[4] = new m.Vector(-1, 1, -1); mesh.Vertices[5] = new m.Vector(1, 1, -1); mesh.Vertices[6] = new m.Vector(1, -1, 1); mesh.Vertices[7] = new m.Vector(1, -1, -1); try { using (var pen = new Pen(Color.DarkGray, 1)) { var verticalPoint1 = new Point((Size / 2) + Offset, Offset); var verticalPoint2 = new Point((Size / 2) + Offset, Offset + Size); e.Graphics.DrawLine(pen, verticalPoint1, verticalPoint2); var horizaontalPoint1 = new Point(Offset, (Size / 2) + Offset); var horizaontalPoint2 = new Point(Offset + Size, (Size / 2) + Offset); e.Graphics.DrawLine(pen, horizaontalPoint1, horizaontalPoint2); Points.ForEach((p) => { Brush brush = new SolidBrush(Color.Black); //Rectangle rect = new Rectangle( double px; double py; double pz; px = p.X; //+ DistanceToCenter(); py = p.Y; // +DistanceToCenter(); m.Point finalP = new m.Point(); //Create the viewport xform points (converting 3d world to 2d screen finalP = p.ViewportXForm(p); e.Graphics.FillRectangle(brush, Convert.ToInt64(finalP.X), Convert.ToInt64(finalP.Y), 2, 2); }); } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } }
private void Form1_Load(object sender, EventArgs e) { draw_Click(null, null); grid = new Grid(gridSize, offset); var random = new Random(Guid.NewGuid().GetHashCode()); for (int x = 0; x < 2; x++) { var X = random.Next(-(gridSize / 2), gridSize / 2); var Y = random.Next(-(gridSize / 2), gridSize / 2); var Z = random.Next(0, gridSize / 100); var W = 1; //for all points, w = 1 var newPoint = new m.Point(X, Y, Z, W); grid.AddPoint(newPoint); } }
public void AddPoint(m.Point point) { Points.Add(point); }